Nu ir in python tada jau :)
def groups(min, max, nr):
print "%d to %d\n" % (min, max)
step = max / nr
start = end = min
for i in range(1, nr+1):
restnrs = (max - end) - (nr - i + 1)
end = restnrs / step > 0 and start + step or start + restnrs % step
print "%d..%d" % (start, end)
start = end + 1
groups(1, 7, 5)
groups(1, 9, 5)
groups(1, 19, 5)
1 to 7
1..2
3..4
5..5
6..6
7..7
1 to 9
1..2
3..4
5..6
7..8
9..9
1 to 19
1..4
5..8
9..12
13..16
17..19
--
Lauris