все Python 3itertoolsфункция
itertools.combinations
itertools
Все сочетания длины r из итерируемого (без повторов, порядок не важен).
Синтаксис
itertools.combinations(iterable, r)
Элементы считаются уникальными по позиции, а не по значению: если во входе есть повторы, в выводе появятся одинаковые кортежи. Число результатов — C(n, r), растёт комбинаторно, поэтому не оборачивайте combinations от большого входа в list() бездумно; сами кортежи идут в лексикографическом порядке входа, а при r больше n результат пуст.
Примеры
import itertools
print(list(itertools.combinations([1, 2, 3], 2))) # → [(1, 2), (1, 3), (2, 3)]
print([''.join(p) for p in itertools.combinations('abc', 2)]) # → ['ab', 'ac', 'bc']
print(len(list(itertools.combinations(range(5), 3)))) # → 10
print(list(itertools.combinations([3, 1, 2], 2))) # → [(3, 1), (3, 2), (1, 2)]
print(list(itertools.combinations([1, 2], 3))) # → []
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности