správnější verze toho stejného s for cyklem.
from itertools import product
ll = map(set, [[(0, 0), (100, 0), (100, 44), (62, 44), (0, 38)],
[(94, 100), (28, 50), (62, 44), (100, 44), (100, 100)],
[(0, 44), (28, 50), (94, 100), (0, 100)],
[(28, 50), (0, 44), (0, 38), (62, 44)]])
d = {}
for (i1, s1), (i2, s2) in product(enumerate(ll, start=1), repeat=2):
if s1 & s2 and i1 != i2:
d.setdefault(i1, []).append(i2)
print(d)