Как я могу получить всевозможные комбинации списка без повторений?
Я импортирую модуль itertoools и применяю его на списке [1, 2, 3] следующим образом:
itertools.combinations(lst, len(lst))
Но в ответ я получаю исходный список и более ничего.
А хочу увидеть
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
Как я могу получить все комбинации длиной со список? Спасибо
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
потому что вам нужны перестановки :), а не сочетания
import itertools
variants = list(itertools.permutations([1, 2, 3], 3))
print(*variants, sep='\n')
Автор решения: Евгений Суханов
→ Ссылка
С другой стороны если вам понадобятся когда-нибудь все возможные комбинации, это тоже нетрудно сделать с помощью того же модуля :)
import itertools
variants = list(itertools.product(*[lst] * 3))
print(*variants, sep='\n')