代码如下:
def QuanPaiLie(n):
if n < l:
for i in range(l):
if plList[i] == 0:
plList[i] = numsList[n]
QuanPaiLie(n + 1)
plList[i] = 0
else:
qplList.append(plList)
if __name__ == '__main__':
numsList = [1, 2, 3]
l = len(numsList)
qplList = []
plList = [0 for i in range(l)]
QuanPaiLie(0)
print(qplList)
运行后输出的结果是:
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
而如果将qplList.append(plList)改为qplList.append(str(plList)),却可以输出:
['[1, 2, 3]', '[1, 3, 2]', '[2, 1, 3]', '[3, 1, 2]', '[2, 3, 1]', '[3, 2, 1]']
且不论算法的优劣,仅这个现象该如何解释呢。
请大佬赐教。