для этой задачи можно использовать алгоритм пересечения множеств .
sets = [['/img0.jpg '],
['/img1.jpg'],
['/img10.jpg'],
['/img11.jpg', '/img9.jpg'],
['/img12.jpg', '/img15.jpg'],
['/img11.jpg', '/img13.jpg', '/img8.jpg', '/img9.jpg'],
['/img14.jpg'],
['/img15.jpg'],
['/img16.jpg'],
['/img14.jpg', '/img17.jpg'],
['/img18.jpg'],
['/img19.jpg', '/img22.jpg'],
['/img2.jpg'],
['/img19.jpg', '/img20.jpg', '/img21.jpg', '/img22.jpg'],
['/img19.jpg', '/img21.jpg', '/img22.jpg'],
['/img22.jpg'],
['/img23.jpg'],
['/img3.jpg'],
['/img3.jpg', '/img4.jpg'],
['/img0.jpg', '/img5.jpg'],
['/img6.jpg'],
['/img2.jpg', '/img7.jpg'],
['/img11.jpg', '/img8.jpg', '/img9.jpg'],
['/img9.jpg']]
super_set = set(sets[0]) # берем первое подмножество
# последовательно вычисляем пересечения супермножества с каждым из подмножеств
for s in sets[1:]:
super_set = super_set.intersection(set(s))
# удаляем из супермножества все элементы, которые не принадлежат пересечению
for s in sets:
super_set.difference_update(set(s) - super_set)
# оставшиеся элементы супермножества и будут искомым результатом
result = sorted(list(super_set))
print(result)