2016-10-04 79 views
-4

給出一個像alist = [1, 3, 2, 20, 10, 13]這樣的列表,我想寫一個函數find_group_f,它可以生成alist中所有可能的元素組合,同時我可以動態地控制每個組中元素的數量k。例如,如果數量k2,功能等於:如何控制python中嵌套for循環的層數?

for e1 in alist: 
    for e2 in alist[alist.index(e1)+1:]: 
     print (e1, e2) 

雖然數量k是3,它會像:

for e1 in alist: 
    for e2 in alist[alist.index(e1)+1:]: 
     for e3 in alist[alist.index(e2)+1:]: 
      print (e1, e2, e3) 

我不知道如何可以實現這樣的?提前致謝!

+2

有應該是一個STDLIB功能:https://docs.python.org/3 /library/itertools.html#itertools.combinations。 – skovorodkin

+3

使用遞歸:http://stackoverflow.com/questions/7186518/function-with-varying-number-of-for-loops-python –

回答