python全配列1~n

581 ワード

全配列は1−nの1つの配列を1つの数と見なし,辞書の順序で小から到達する出力である.
1~5は次の列です.
1 2 3 4 5  1 2 3 5 4  1 2 4 3 5  1 2 4 5 3  1 2 5 3 4  4 5 2 1 3  4 5 2 3 1  4 5 3 1 2  4 5 3 2 1  5 1 2 3 4  5 1 2 4 3  5 1 3 2 4  5 1 3 4 2 
ソース:


def print_permutation(n,A,cur):
	if cur==n:
		for i in xrange(0,n):
			print A[i],
		print ''
	else:
		for i in xrange(1,n+1):
			ok=True
			for j in xrange(0,cur):
				if A[j]==i:
					ok=False
					break

			if ok:
				A[cur]=i
				print_permutation(n,A,cur+1)

A=[0,0,0,0,0,0,0,0]
cur=0
n=5
print_permutation(n,A,cur)