"What are the differences between generators and iterators in Python, and when would you use each to handle large datasets?"