Use the yield
keyword:
import datetime
def generate_dates(start_date, end_date):
one_day = datetime.timedelta(days=1)
current_date = start_date
while current_date <= end_date:
yield current_date
current_date += one_day
start_date = datetime.date(2010, 1, 2)
end_date = datetime.date(2010, 1, 5)
for date in generate_dates(start_date, end_date):
print(date)