Python Glossary English

все Python 3itertoolsфункция

itertools.permutations

itertools

Все перестановки длины r из итерируемого (порядок важен).

Синтаксис

itertools.permutations(iterable, r=None)

Число результатов растёт как n!/(n−r)!, поэтому на большом входе перебор взрывается почти мгновенно — не заворачивай его в list() бездумно. Элементы считаются уникальными по позиции, а не по значению: в [1, 1] две единицы дадут внешне «дублирующиеся» кортежи, а если порядок внутри группы не важен, тебе нужен combinations.

Примеры

import itertools
print(list(itertools.permutations([1, 2, 3], 2)))   # → [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
print([''.join(p) for p in itertools.permutations('abc')])  # → ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
print(len(list(itertools.permutations(range(4)))))  # → 24
print(list(itertools.permutations('aab', 2)))  # → [('a', 'a'), ('a', 'b'), ('a', 'a'), ('a', 'b'), ('b', 'a'), ('b', 'a')]
print(list(itertools.permutations([1, 2], 3)))  # → []

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности