Infinite generator - Cycle and Sum

Working through a python example and presented with the problem

Write a one-line Python generator or iterator expression that returns the infinite sequence of increasing integers generated by repeatedly adding the ascii values of each letter in the word “Close” to itself. 67, 175, 286, 401, 502, 569, 677, 788, 903 is the beginning of this sequence. Assume any needed Python standard library modules are already imported.

I came up with this, which is

  • Take each letter in the word Close
  • Find the ordinal value of that letter i.e. C = 67
  • Cycle over the values as a generator using itertools.cycle
  • Then accumulate the values as another iterator adding each value itertools.accumulate

Code

import itertools
import operator
import time

if __name__ == '__main__':
    my_gen = (itertools.accumulate(itertools.cycle((ord(letter) for letter in 'Close'))))
    for current_value in itertools.islice(my_gen, 12):
        print(current_value)

Results

67
175
286
401
502
569
677
788
903
1004
1071
1179

Bonus

Any word format as a function

def infinite_generator(input_word: str) -> Iterator[int]:
    return itertools.accumulate(itertools.cycle((ord(letter) for letter in input_word)))