d2 = eastern.localize(datetime(2016, 3, 12, 5, 0, 0))
d3 = eastern.localize(datetime(2016, 11, 4, 21, 0, 0))
d4 = eastern.localize(datetime(2016, 11, 5, 5, 0, 0))
while d1 < d2:
    print(d1)
d1 = eastern.normalize(d1 + td(hours=1))
while d3 < d4:
    print(d3)
d3 = eastern.normalize(d3 + td(hours=1))
Python: Printing all hours between two datetime accounting for daylight saving