输出数组的全排列

def swap(a, b):
    return b, a
 
def perminate(array, start, end):
    if start == end:
        print array
        return
 
    N = len(array)
 
    for i in range(start, N):
        array[i], array[start] = swap(array[i], array[start])
        perminate(array, start+1, end)
        array[i], array[start] = swap(array[i], array[start])
 
a = [1,2,3,4]
perminate(a, 0, len(a)-1)
原文地址:https://www.cnblogs.com/ohscar/p/3109642.html