Improve Your Python - 'yield' and Generators Explained