У меня есть два списка:
list1=['a', 'z', 'd', 'e','b']
list2=['d','e', 'b' ]
и мне нужны комбинации (не перестановки) элементов этих двух списков.Я пробовал itertools.combinations
и itertools.product
, но я не получаю именно то, что хочу.Например, ('d','d')
будет неправильно.('a','z')
также будет неправильным, поскольку 'a'
и 'z'
принадлежат одному и тому же списку (list1
), и ни один из них не появляется в list2
.Наконец, я не хочу, чтобы и ('d','e')
, и ('e','d')
- только одна из этих пар, поскольку порядок не имеет значения.Идеальный результат будет выглядеть так:
('a','d'), ('a','e'), ('a','b'),
('z','d'), ('z','e'), ('z','b'),
('d','e'), ('d','b'), ('e','b')
Редактировать: обычно list2
не всегда будет подмножеством list1
, но я также хочу разобраться с этим случаем.Эти два списка могут также совпадать, а не полное подмножество.