Quiero agrupar las tuplas en base a atributos similares

Tengo una lista de tuplas. [(1, 2), (2, 3), (4, 3), (5, 6), (6, 7), (8, 2)]

Quiero agruparlos en listas en función de las tuplas que están conectadas (tienen valores relacionados).

Entonces, el resultado final son dos listas de valores de tupla relacionados = [[1, 2, 3, 4, 8], [5, 6, 7]]

¿Cómo puedo escribir una función para hacer esto? Esta fue una pregunta de entrevista de trabajo. Estaba intentando hacerlo en Python, pero estoy frustrado y solo quiero ver la lógica detrás de la respuesta, así que incluso el código psuedo me ayudaría, así puedo ver lo que hice mal.

Solo tuve unos minutos para hacer esto en el lugar, pero esto es lo que intenté:

def find_partitions(connections):
 theBigList = []     # List of Lists
 list1 = []          # The initial list to store lists
 theBigList.append(list1)

 for list in theBigList:
 list.append(connection[1[0], 1[1]])
     for i in connections:
         if i[0] in list or i[1] in list:
             list.append(i[0], i[1])

         else:
             newList = []
             theBigList.append(newList)

Esencialmente, el chico quería una lista de listas de valores que estaban relacionados. Intenté usar un bucle for, pero me di cuenta de que no funcionaría, y luego el tiempo se agotó.

Respuestas a la pregunta(5)

Su respuesta a la pregunta