2013-04-17 7 views
2

Скажем, у меня есть следующий список:Python: Как получить список перестановок подмножеств?

L = [1, 2, 3] 

Я хочу, чтобы получить следующий вывод:

[[1], [2],[3]] 
[[1], [2, 3]] 
[[2], [1, 3]] 
[[3], [1, 2]] 

Только я даже не уверен, если я сформулировал вопрос правильно. Это в основном как неповторяющиеся группы перестановок?

+0

Я считаю, что он хочет сделать все перестановки в циклической нотации. –

+0

Вы ищете что-то вроде poweret? http://docs.python.org/2/library/itertools.html#recipes – jamylak

+0

Я думаю, что могу написать программу для генерации вашего точного вывода, но я не понимаю, как вы получаете свой результат ... Можете ли вы объяснить это больше? – George

ответ

-1

Это не особенно понятно, как вы пришли в ваш вывод (другой пример или лучшее описание может помочь), но ответ, вероятно, лежит в itertools, который содержит ряд инструментов для работы с комбинациями и перестановками:

>>> data = [1, 2, 3] 
>>> list(zip(reversed(data), itertools.combinations(data, 2))) 
[(3, (1, 2)), (2, (1, 3)), (1, (2, 3))] 
+0

Было бы полезно выяснить причину с правом голоса, хотя я согласен, что это не может быть идеальным ответом, учитывая двусмысленность вопроса, это наилучший вариант. Это определенно не «не полезно». –

Смежные вопросы