>>>>> f = lambda x, n, acc=[]: f(x[n:], n, acc+[(x[:n])]) if x else acc
> Packing tail recursion into one line is bad for both understanding and > refactoring. Use better names and a docstring gives > > def group(seq, n): > 'Yield from seq successive disjoint slices of length n plus the > remainder' > for i in range(0,len(seq), n): > yield seq[i:i+] > > -- > Terry Jan Reedy Thank you all very much for this incredible help! The original code now makes sense, and I was thrilled to see better and more efficient ways of doing this. Thanks for taking the time to share your thoughts as well as the excellent detail everyone shared… I really appreciate it! Jay -- http://mail.python.org/mailman/listinfo/python-list