Python,实现全排列的打印

来源:互联网 发布:树莓派上编程 编辑:程序博客网 时间:2024/05/22 04:44

问题:输入一个数字:3,打印它的全排列组合:123 132 213 231 312 321,并进行统计个数。

下面是Python的实现代码:

#!/usr/bin/env python# -*- coding: <encoding name> -*- '''全排列的demoinput : 3output:123 132 213 231 312 321'''total = 0def 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 = 0total = 0numList = [x for x in range(1,n+1)]print '*' * 20for 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        


      
        
0 0