簡體   English   中英

使用itertools創建最多一個值的所有組合

[英]Using itertools to create all combinations up to a value

我有以下代碼:

return [reduce(lambda x,y: str(x)+str(y), perm) 
        for perm in itertools.combinations(alphabet, n)]

我的問題是我希望它適用於所有不超過n的值。 這是用於作業,我很難將其做成單行的Pythonic語句。 我將如何繼續這種方式,以便添加如下語句:

 return [reduce(lambda x,y: str(x)+str(y), perm) 
         for perm in itertools.combinations(alphabet, n) for n in range(1,n+1)] 

除了一個實際可行的?

像這樣嗎

>>> from itertools import combinations, chain
>>> limit = 10
>>> c = chain(*(combinations(alphabet, x) for x in range(1, limit+1)))
>>> list(c)

我不會顯示輸出,太長了。

編輯:根據您上面的評論,似乎您想要以字符串形式的輸出,所以

[''.join(s) for s in chain(*(combinations(alphabet, x) for x in range(1, limit+1)))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM