給定幾個字母,輸出所有可能的組合(使用遞迴解決)

2022-04-29 09:15:08 字數 876 閱讀 7953

今天朋友問我乙個簡單的題,大意就是個六個字母,然後列印出所有的組合(每個字母只能使用一次)

研究一會發現可以遞迴進行實現。

思路

當兩個字母(a,b)進行組合時就只有兩種可能(a,b)(b,a)。

當三個字母進行組合時(a,b,c),可看作乙個字母和另外的兩個字母進行組合(a,(b,c)),然後組合(b,c)。

然後依次遍歷三個字母和另外兩個字母進行組合,更多的字母也是如此,看作乙個字母和其他字母的組合。

想到這裡熟悉遞迴的朋友就知道了,迴圈呼叫自身,有終止條件,好了思考完了上**。

具體**

1

deflistzh(a1,mylist):2#

遞迴解法

3if 2 ==len(mylist):

4print(a1+mylist[0]+mylist[1])

5print(a1 + mylist[1] +mylist[0])

6else:7

for i,j in

enumerate(mylist):

8 c =mylist[:]

9c.pop(i)

10 listzh(a1+j,c)

1112

if__name__ == '

__main__':

13 strs = '

catdog

'14 mylist =list(set(list(strs)))15#

mylist=['ab','c','123'] #可以給定任意需要組合的list

16 listzh('',mylist)

TCP 幾個字段含義

1 tcp out of order tcp有問題 2 tcp segment of a reassembled pdu 3 tcp previous segment lost tcp先前的分片丟失 4 tcp acked lost segment tcp應答丟失 5 tcp window upda...

double佔幾個位元組

16位編譯器 char 1個位元組 char 即指標變數 2個位元組 short int 2個位元組 int 2個位元組 unsigned int 2個位元組 float 4個位元組 double 8個位元組 long 4個位元組 long long 8個位元組 unsigned long 4個位元...

認得幾個字 張大春

自慚於偏低的文化水平,大字不識幾個,斗大的字認不了一籮筐 於是這本豆瓣上評價頗為不錯的書就被我收了 幸好之前曾經聽過中華文字的起源與發展這個報告 所以,書裡提到的一部分文字的變遷還算好理解 但是啊,張先生果然太有文化 動輒引經據典,偶爾表達自己心情的詞也讓我頗為躊躇 比如僝僽,chan2zhou4,...