附加到列表类属性时,Python发生异常行为..

时间:2018-07-06 18:00:26

标签: python

我试图编写递归代码以获取数组的所有排列。 在将答案附加到列表时会给出意外的答案。 有人可以帮忙吗..

def permute(A):
    p = []
    def permute_util(a,l,r):
        if l==r:
            p.append(a)
            print (a)
        else:
            for i in range(l,r+1):
                a[l],a[i] = a[i],a[l]
                permute_util(a,l+1,r)
                a[l],a[i] = a[i],a[l]
    permute_util(A,0,len(A)-1)
    print (p)

输出-

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 2, 1]
[3, 1, 2]
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]

输出的最后一行不是我期望的。.我缺少什么?

0 个答案:

没有答案