Даты можно сравнивать друг с другом так же, как числа, и вы можете выполнять математику, связанную с датой, с объектом datetime.timedelta.Нет никакой причины использовать dateutil здесь, и нет никакой причины жестко кодировать количество итераций а-ля 'range (9)'.Это действительно становится похоже на то, как вы будете иметь дело с простыми старыми числами.
>>> import datetime
>>> date1 = '2011-05-03'
>>> date2 = '2011-05-10'
>>> start = datetime.datetime.strptime(date1, '%Y-%m-%d')
>>> end = datetime.datetime.strptime(date2, '%Y-%m-%d')
>>> step = datetime.timedelta(days=1)
>>> while start <= end:
... print start.date()
... start += step
...
2011-05-03
2011-05-04
2011-05-05
2011-05-06
2011-05-07
2011-05-08
2011-05-09
2011-05-10
>>>