def doCombine(strng, out, length, level, start):
for i in range(start, length):
out.append(strng[i])
print out
if (i < length - 1):
doCombine(strng, out, length, level +1, i + 1)
out = out[:-1]
x = list()
target = "wxyz"
print doCombine(target, x, len(target), 0, 0)
这里可能出了什么问题?我的输出结果相对较差。
out是可变的,你可以在doCombine中修改它,但是如果你将out重新分配给一个新值,调用者版本的out将不会改变。 - Andrew Clarkout.pop()可能是del out[-1]的一个稍微更漂亮的替代方案。 - John Y