Here's a silly recursive version (don't really use, it's too slow): def csum(s): if len(s)==0: return s return csum(s[:-1]) + [sum(s)]