我有这段代码:
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)]
除了实际有效的一个?
答案 0 :(得分:0)
这样的东西?
>>> 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)))]