itertools.combinations()
Возвращает все сочетания длины r без учёта порядка и без повторений.
Сигнатура
itertools.combinations(iterable, r)Генерирует все сочетания (комбинации) длины r, где порядок не важен, а элементы не повторяются. Кортежи выдаются в лексикографическом порядке исходной последовательности.
import itertools
print(list(itertools.combinations([1, 2, 3, 4], 2)))
# [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]