import itertools as itools
def segment(it, n=1):
try:
len_it = len(it)
it_true = it
except TypeError:
it_true = tuple(it)
len_it = len(it_true)
size, rest = divmod(len_it, n)
sizes = [size] * n
for i in range(rest):
sizes[-i] += 1
all_sizes = frozenset(itools.permutations(sizes))
res = []
for sizes in all_sizes:
elem = []
i = 0
for size in sizes:
elem.append(it[i:i+size])
i += size
res.append(elem)
return res
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/7O64PBAIPITLTO32ZCIGPL2STKEGNQW4/
Code of Conduct: http://python.org/psf/codeofconduct/