注意 代码中res[:]是必须的,不然的话会反复循环 因为切片是引用新的对象, 此时在循环中res[:]是不更新的,而res是不断有元素push进去的,很trick 示例如下: res=[[]]; for i in nums: for j in res[:]: res.append([i]+j); print(res) 但是: 下面这种情况 res可加[:]可不加,可能是这种表达式就一开始固定住res不变了; 而上面情况的for循环是会调用更新后的res的 res=[[]]; for i in nums: res=res+[[i]+k for k in res]