Справочник по функциям Python

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 больше числа элементов, результат пуст.

Смотрите также