1. 程式人生 > >#題目描述:輸入一個字串,按字典序打印出該字串中字元的所有排列。例如輸入字串abc, #則打印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba

#題目描述:輸入一個字串,按字典序打印出該字串中字元的所有排列。例如輸入字串abc, #則打印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba

才學不久,希望每天能記錄一篇

import random
def zidianxulie():#封裝整個函式
a=input(“請輸入字串:”)
a1=sorted(a)#先對我輸入的字串進行一個排序,簡單得到一個列表
l=[]#空列表的作用是為了儲存我得到的目標字典序列
def leicheng(n):#為下面程式中的迴圈次數得到基礎
if n==1:
return 1
else:
return n*leicheng(n-1)
chongfu= leicheng((len(a1)-len(set(a1)))+1)#考慮到有重複元素的做法
b=int(leicheng(len(a1))/chongfu)
while len(l)!=b:
st1=””
random.shuffle(a1)
for x in a1:
st1+=x
if st1 not in l:
l.append(st1)
else:
continue
print(sorted(l))
zidianxulie()