вот например у меня есть дневник
dict = { 'abc':[a, b], 'cdf':[b], 'gh':[a], 'fh':[g], 'hfz':[g]}
pairs=list(itertools.combinations(dict.keys(),2))
Это даст мне пары:
(abc,cdf) #имеют
(cdf,gh)
(cdf,fh)
(cdf,hfz)
(abc,gh)#имеют
(abc,fh)
(abc,hfz)
(gh,fh)
(gh,hfz)
(fh,hfz)#имеют
Но из этих пар мне нужны только те что имеют общее значение тоисть:
(abc,cdf) #имеют b
(abc,gh)#имеют a
(fh,hfz)#имеют g
PS. Для лучшей визуализации проблемы: я создаю сеть где ключи это вершины которые будут иметь ребро только в стучае того если у них есть общее значение