Вы используете объект диапазона с шагом 7 и добавляете его к начальной дате:
import datetime
def daterange(startdate, enddate, steps=1):
"""Yields dates in increments of steps days from startdate to enddate"""
numdays = (enddate-startdate).days
for x in range (0, numdays, steps):
yield startdate + datetime.timedelta(days = x)
today = datetime.datetime.today()
end = today + datetime.timedelta(days=40)
print( list(daterange(today, end, 7)))
Вывод:
[datetime.datetime(2018, 9, 28, 19, 34, 26, 976681),
datetime.datetime(2018, 10, 5, 19, 34, 26, 976681),
datetime.datetime(2018, 10, 12, 19, 34, 26, 976681),
datetime.datetime(2018, 10, 19, 19, 34, 26, 976681),
datetime.datetime(2018, 10, 26, 19, 34, 26, 976681),
datetime.datetime(2018, 11, 2, 19, 34, 26, 976681)]