You can use itertools.islice
and a generator function:
>>> import math
>>> from itertools import islice
def solve(lis, n):
it = iter(lis)
le = float(len(lis))
for _ in xrange(int(math.ceil(le/n))):
yield " ".join(islice(it, n))
>>> for x in solve([ 'A', 'B', 'C', 'D', 'E', 'F'], 3):
... print x
...
A B C
D E F
Using the py3.x's print
function:
>>> from __future__ import print_function
>>> print(*solve([ 'A', 'B', 'C', 'D', 'E', 'F'], 3), sep='\n')
A B C
D E F
>>> print(*solve([ 'A', 'B', 'C', 'D', 'E', 'F', 'G'], 3), sep='\n')
A B C
D E F
G