Encontre conjuntos de conjuntos disjuntos em uma lista de tuplas ou conjuntos em python
Aqui está o problema: Eu tenho uma lista de tuplas (podem ser conjuntos também, se necessário). Por exemplo:
a = [(1, 5), (4, 2), (4, 3), (5, 4), (6, 3), (7, 6)]
O que eu quero encontrar é uma lista
r = [(1, 5, 4, 2, 3, 6, 7)]
porque a interseção não está vazia depois que todos os conjuntos forem reunidos.
Para o exemplo
a = [(1, 5), (4, 2), (4, 3), (5, 4), (6, 3), (7, 6), (8, 9)]
o resultado deve ser
r = [(1, 5, 4, 2, 3, 6, 7), (8, 9)]
Espero que o problema esteja claro. Então, qual é a maneira mais elegante de fazer isso em python, se houver?
Felicidades