Encuentra conjuntos de conjuntos disjuntos de una lista de tuplas o conjuntos en python
Aquí está el problema: tengo una lista de tuplas (también podría establecerse si es necesario). Por ejemplo:
a = [(1, 5), (4, 2), (4, 3), (5, 4), (6, 3), (7, 6)]
Lo que quiero encontrar es una lista
r = [(1, 5, 4, 2, 3, 6, 7)]
porque la intersección no está vacía una vez que todos los conjuntos se unen.
Por el ejemplo
a = [(1, 5), (4, 2), (4, 3), (5, 4), (6, 3), (7, 6), (8, 9)]
el resultado debería ser
r = [(1, 5, 4, 2, 3, 6, 7), (8, 9)]
Espero que el problema sea claro. Entonces, ¿cuál es la forma más elegante de hacer esto en Python, si la hay?
Salud