itertools.combinations
Перебирает сочетания — наборы из r элементов без учёта порядка.
Python 3.13
itertools.combinations(iterable, r)Параметры
- iterableIterable
- Элементы для сочетаний.
- rint
- Сколько элементов в одном сочетании.
Возвращаемое значение
Итератор кортежей в порядке исходных элементов.
Примеры
Сочетания по два элемента
Python 3.13
from itertools import combinations
print(list(combinations('abc', 2)))[('a', 'b'), ('a', 'c'), ('b', 'c')]Пары чисел с суммой 10
Python 3.13
from itertools import combinations
numbers = [2, 8, 5, 5, 3]
print([pair for pair in combinations(numbers, 2) if sum(pair) == 10])[(2, 8), (5, 5)]
Подробности
Порядок не важен: из (a, b) и (b, a) выдаётся только первый вариант. Сочетания с повторением элементов даёт itertools.combinations_with_replacement. Если r больше числа элементов, результат пуст.
