Поиск всех комбинаций списка в Python с повторением - PullRequest
0 голосов
/ 30 марта 2020

Я ищу, чтобы найти и распечатать все возможные комбинации набора (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) длины 5. Должно быть 13 выберите 5 комбинаций (6188), потому что порядок НЕ имеет значения, и повторение разрешено. Я нашел этот код и использовал его:

    from itertools import product
    for item in product([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], 
    repeat=5):
      print(item)

Однако, это не печатает все 6188 комбинаций. Попытка выяснить, как настроить код так, чтобы он выплевывал все комбо.

1 Ответ

0 голосов
/ 30 марта 2020

То, что вы хотите, это использовать combinations_with_replacement в качестве комментария @Dani Mesejo.
Из do c:

Возвращать подпоследовательности элементов r длины из итеративного ввода , позволяющий повторять отдельные элементы более одного раза.

from itertools import combinations_with_replacement

l = list(combinations_with_replacement([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], 5))
print(len(l))  # 6188
...