The iterator is the mechanism by which you can iterate over a list or some other set of objects/values using for. A list implements an iterator. But you can also implement iterators that return number sequences, random strings, etc.
When you return an iterator, you are merely returning the iteration object; the receiving code doesn't know anything about the underlying container or generator algorithm.
Iterators are lazy; they only return the next element in the sequence or list when asked to do so. You can therefore implement infinite sequences with them.
Further Reading
Iterator Types
The for statement