2
我目前的工作對我自己的一個簡單的項目,我對一個問題跌跌撞撞:
我需要有4個數字的列表:說你如何列出python中所有可能的安排?
L=[1,3,4,6]
我需要的重排的完整列表數字如下:
L_arranged=[[1,3,4,6],[1,3,6,4],[1,6,3,4],...,[3,4,1,6]]
任何想法?
即使是一個理論將是有益的,謝謝:)
我目前的工作對我自己的一個簡單的項目,我對一個問題跌跌撞撞:
我需要有4個數字的列表:說你如何列出python中所有可能的安排?
L=[1,3,4,6]
我需要的重排的完整列表數字如下:
L_arranged=[[1,3,4,6],[1,3,6,4],[1,6,3,4],...,[3,4,1,6]]
任何想法?
即使是一個理論將是有益的,謝謝:)
您正在尋找itertools.permutations
。
>>> from itertools import permutations
>>> [list(p) for p in permutations([1,3,4,6])]
[[1, 3, 4, 6], [1, 3, 6, 4], [1, 6, 3, 4], ..., [3, 4, 1, 6]]
如果你不需要變異(編輯)的結果,你可以把返回直奔列表,產生的元組
>>> list(permutations([1,3,4,6]))
[(1, 3, 4, 6), (1, 3, 6, 4), (1, 6, 3, 4), ..., (3, 4, 1, 6)]
再快,如果你打算使用效果僅僅作爲一個迭代器,你並不需要在所有
>>> for p in permutations([1,3,4,6]):
... print(p)
(1, 3, 4, 6)
(1, 3, 6, 4)
(1, 6, 3, 4)
...
(3, 4, 1, 6)
投它['和itertools.permutations()'](https://docs.python.org/2/library/itertools.html#itertools .permutations)。 –