输入一个数,找出1到它之间所有数出栈的所有情况
counhc=int(input()) #nstr=input() def fun(ins): outsl=[] if(len(ins)==0): return outsl if(len(ins)==1): outsl.append(ins[0]) return outsl if(len(ins)==2): outsl.append(ins[0]+ins[1]) outsl.append(ins[1]+ins[0]) return outsl i=0 while(i<len(ins)): #如果长度大于3,进入该循环,循环包含了ins[0]出现在任意位置的情况 loutsl=fun(ins[1:i+1]) routsl=fun(ins[i+1:len(ins)])#第一次循环:1在第一个位置,左为[],右为[234567];第二次循环:1在第二个位置,左为[2],右为[34567];以此类推 if(len(loutsl)==0): for sstr2 in routsl: outsl.append(ins[0]+sstr2) if(len(routsl)==0): for sstr1 in loutsl: outsl.append(sstr1+ins[0]) for sstr1 in loutsl: for sstr2 in routsl: outsl.append(sstr1+ins[0]+sstr2) i=i+1 return outsl ins="" for i in range(1, counhc+1): ins=ins+str(i) #ins="1234" outsl=fun(ins) outsl.sort() print(outsl)
posted on 2022-06-15 22:31 Petrichor_ll 阅读(77) 评论(0) 编辑 收藏 举报