I like this approach. The only thing I would criticize is that it uses '' as a substitute for None.
So something like
fizzes, buzzes, empties = str_cycle('Fizz', 3), str_cycle('Buzz', 5), str_cycle('', 7)
wouldn't work since it would print 7 instead of the empty string