все Python 3itertoolsфункция
itertools.combinations_with_replacement
itertools
Сочетания длины r с повторами элементов.
Синтаксис
itertools.combinations_with_replacement(iterable, r)
Отличие от combinations — один и тот же элемент можно взять несколько раз (кортежи неубывающие по позиции). От product(it, repeat=r) отличается тем, что не даёт переставленных дубликатов: только сочетания без учёта порядка, поэтому результатов C(n+r-1, r), а не n в степени r.
Примеры
import itertools
print(list(itertools.combinations_with_replacement([1, 2], 2))) # → [(1, 1), (1, 2), (2, 2)]
print(list(itertools.combinations_with_replacement('ab', 3))) # → [('a', 'a', 'a'), ('a', 'a', 'b'), ('a', 'b', 'b'), ('b', 'b', 'b')]
print(len(list(itertools.combinations_with_replacement(range(6), 2)))) # → 21
print(list(itertools.combinations([1, 2], 2))) # → [(1, 2)]
print(list(itertools.combinations_with_replacement([], 2))) # → []
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности