The first method: recursion
Copy Code code as follows:
def perms (elements):
If Len (elements) <=1:
Yield elements
Else
For Perm in Perms (elements[1:]):
For I in range (len (elements)):
Yield perm[:i] + elements[0:1] + perm[i:]
For item in list (perms [1, 2, 3,4]):
Print Item
Results
Copy Code code as follows:
[1, 2, 3, 4]
[2, 1, 3, 4]
[2, 3, 1, 4]
[2, 3, 4, 1]
[1, 3, 2, 4]
[3, 1, 2, 4]
[3, 2, 1, 4]
[3, 2, 4, 1]
[1, 3, 4, 2]
[3, 1, 4, 2]
[3, 4, 1, 2]
[3, 4, 2, 1]
[1, 2, 4, 3]
[2, 1, 4, 3]
[2, 4, 1, 3]
[2, 4, 3, 1]
[1, 4, 2, 3]
[4, 1, 2, 3]
[4, 2, 1, 3]
[4, 2, 3, 1]
[1, 4, 3, 2]
[4, 1, 3, 2]
[4, 3, 1, 2]
[4, 3, 2, 1]
Second method: Python standard library
Copy Code code as follows:
Import Itertools
Print List (Itertools.permutations ([1, 2, 3,4],3))
The source code is as follows:
Copy Code code as follows:
#coding: Utf-8
Import Itertools
Print List (Itertools.permutations ([1, 2, 3,4],3))
def perms (elements):
If Len (elements) <=1:
Yield elements
Else
For Perm in Perms (elements[1:]):
For I in range (len (elements)):
Yield perm[:i] + elements[0:1] + perm[i:]
For item in list (perms [1, 2, 3,4]):
Print Item