> > What, no partitions?
>
> >http://en.wikipedia.org/wiki/Partition_of_a_set

Simpler version:

def partition(s):
    n = len(s)
    parts = range(1, n)
    for i in range(n):
        for div in combinations(parts, i):
            print map(s.__getslice__, chain([0], div), chain(div,
[n]))

>>> partition('abcd')
['abcd']
['a', 'bcd']
['ab', 'cd']
['abc', 'd']
['a', 'b', 'cd']
['a', 'bc', 'd']
['ab', 'c', 'd']
['a', 'b', 'c', 'd']
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to