for l in megalist:
    cl = Counter(l)
if not result:
    result.append([l])
else:
    add = False
for result_item in result:
    add = bool([e for e in result_item if bool(cl & Counter(e))])
if add and l not in result_item:
    result_item.append(l)
break
if not add:
    result.append([l])
print(result)
[[['a', 'b'], ['a', 'd'], ['b', 'd'], ['b', 'f']], [['r', 's'], ['t', 'r']]]
Split a tuple of tuples (or list of lists) of paired values into independent complete sets?