[英]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.