您的位置:首页 > 编程语言 > Python开发

Python,实现全排列的打印

2016-03-24 23:01 465 查看
问题:输入一个数字:3,打印它的全排列组合:123 132 213 231 312 321,并进行统计个数。

下面是Python的实现代码:
#!/usr/bin/env python
# -*- coding: <encoding name> -*-
'''
全排列的demo
input : 3
output:123 132 213 231 312 321
'''

total = 0

def permutationCove(startIndex, n, numList):
'''递归实现交换其中的两个。一直循环下去,直至startIndex == n
'''
global total
if startIndex >= n:
total += 1
print numList
return

for item in range(startIndex, n):
numList[startIndex], numList[item] = numList[item], numList[startIndex]
permutationCove(startIndex + 1, n, numList )
numList[startIndex], numList[item] = numList[item], numList[startIndex]

n = int(raw_input("please input your number:"))
startIndex = 0
total = 0
numList = [x for x in range(1,n+1)]
print '*' * 20
for item in range(0, n):
numList[startIndex], numList[item] = numList[item], numList[startIndex]
permutationCove(startIndex + 1, n, numList)
numList[startIndex], numList[item] = numList[item], numList[startIndex]

print total


      

        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python 全排列