Я бы получил воскресенье этой недели, а затем дал бы 7 дней, начиная с этого. В зависимости от того, что вы хотите сделать на 52 неделе, вы можете удалить break
from datetime import datetime, timedelta
def days_from_weekstr(weekstr):
sunday = datetime.strptime(weekstr + "-0", "%Y%W-%w")
year = sunday.year
for i in range(7):
day = sunday + timedelta(1) * i
if day.year != year:
break
yield day.date()
Использование:
>>> list(days_from_weekstr("201801"))
[datetime.date(2018, 1, 7), datetime.date(2018, 1, 8), datetime.date(2018, 1, 9), datetime.date(2018, 1, 10), datetime.date(2018, 1, 11), datetime.date(2018, 1, 12), datetime.date(2018, 1, 13)]