这是我想到的代码:
def combinations(input):
ret = ['']
for i in range(len(input)):
ret.extend([prefix+input[i] for prefix in ret])
return ret
这个算法的时间复杂度是O(2^n),但是能否减少空间呢?我听说使用 yield
可能有用,但是在想如何实现 yield
。请不要使用内置的组合函数——我想看看它是如何实现的。
itertools.combinations
。 - lvc