
Untitled
By: a guest on
Jun 13th, 2012 | syntax:
None | size: 1.82 KB | hits: 15 | expires: Never
Can anyone help me check this python code? [closed]
def permutation(Ori, Curr, used):
if len(Ori) == len(Curr):
#print Curr
return
for i in xrange(len(Ori)):
if used[i]:
continue
used[i] = True
Curr.append(Ori[i])
print Curr,i," after append"
permutation(Ori, Curr, used) # further level
used[i] = False
print Curr,i," before delete"
Curr = Curr[0:-1] # Curr.pop() works
print Curr,i," after delete"
return
if __name__ == "__main__":
used = [False]*3
Curr = []
permutation([1,2,3], Curr, used)
[1] 0 after append
[1, 2] 1 after append
[1, 2, 3] 2 after append
[1, 2, 3] 2 before delete
[1, 2] 2 after delete <------
[1, 2, 3] 1 before delete <------
[1, 2] 1 after delete
[1, 2, 3] 2 after append
[1, 2, 3] 2 before delete
[1, 2] 2 after delete
[1, 2, 3] 0 before delete
[1, 2] 0 after delete
[1, 2, 2] 1 after append
[1, 2, 2] 1 before delete
[1, 2] 1 after delete
[1, 2, 3] 2 after append
[1, 2, 3] 2 before delete
[1, 2] 2 after delete
def f(A):
if(len(A) == 10):
return
A.append('a')
f(A)
print A
# A = A[0:-1]
# A.pop()
return
if __name__ == "__main__":
f([])
permutation(Ori, Curr, used) # further level
permutation(Ori, Curr[:], used) # further level
Curr.append(Ori[i])
Curr = Curr + [Ori[i]]
def permutations(iter):
"""
>>> print(list( permutations(range(3)) ))
[[0, 1, 2], [0, 2, 1], [1, 0, 2], [1, 2, 0], [2, 0, 1], [2, 1, 0]]
"""
elements = list(iter)
# base case
if len(elements)==0:
yield []
for i,elem in enumerate(elements):
withoutElem = elements[:i]+elements[i+1:]
for perm in permutations(withoutElem):
yield [elem]+perm