Python generators were something that alluded me for quite a while. A spooky concept that didn't seem necessary. However after using Coroutines in C#, it sort of became a little more clear.
Then, recently I stumbled across an excellent blog post explaining what generators do, how and when to use them:
Check it out!