倒序显示一个list的后半部分。显示完成后,list保持原状。
这是一个递归调用的一个练习题。
象是玩牌似的。先把首尾交换。然后递归调用里面一层,然后再把首尾换回来。
递归调用直到中间那个数,这里将整个LIST的前半部分(此时是倒序的原来的后半部分)打印出来。
这样的交换策略应用到从1到结尾的每一个输入的序列。
输出一个给定list的所有元素的排列组合
你把代码修改下:
def perm(list,k,m):
if k==m:
#for i in range(m+1):
print list[:m+1]
#print
else:
for i in range(k,m+1):
list[k],list[i]=list[i],list[k]
perm(list,k+1,m)
list[k],list[i]=list[i],list[k]
mylist=input("input a list([1,2,3...]):")
perm(mylist,0,len(mylist)-1)
这样看结果就比较清楚了