Python实现全排列的打印

本文为大家分享了Python实现全排列的打印的代码,供大家参考,具体如下

问题:输入一个数字: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实现全排列的打印 的全部内容, 来源链接: utcz.com/z/336610.html

回到顶部