Welcome, guest | Sign In | My Account | Store | Cart
def partition(it):
   
for i in range(len(it)):
       
if i == len(it) - 1:
           
yield [it[0:i+1]]
       
else:                    
           
for p in partition(it[i+1:]):
               
yield [it[0:i+1]] + p


print list(partition(range(4)))

[[0], [1], [2], [3]]
[[0], [1], [2, 3]]
[[0], [1, 2], [3]]
[[0], [1, 2, 3]]
[[0, 1], [2], [3]]
[[0, 1], [2, 3]]
[[0, 1, 2], [3]]
[[0, 1, 2, 3]]

History