用python写算法6[全排列]

题目:给定一组数,给出这组数所有的排列

算法:

#!/usr/bin/python
#coding=gbk

'''
Created on 2013-03-24
@author: songjian
'''

def quanpailie(test_arr, sub_arr):
    if len(test_arr) == 1:
        sub_arr.append(test_arr[0])
        print sub_arr
        sub_arr.pop()
    else:
        length = len(test_arr)
        for i in range(0, length):
            sub_arr.append(test_arr[i])
            quanpailie(test_arr[0:i]+test_arr[i+1:], sub_arr)
            sub_arr.pop()

def main():
    test_case = [1, 2, 3, 4, 5]
    quanpailie(test_case, [])

if __name__ == '__main__':
    main()

 

posted on 2013-03-27 16:23  jiyiyouxin  阅读(246)  评论(0)    收藏  举报