输入一个数,找出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 阅读(86) 评论(0) 收藏 举报
浙公网安备 33010602011771号