start = datetime.strptime(start, '%Y%m%d')
end = datetime.strptime(end, '%Y%m%d')
diff = (end - start) / intv
for i in range(intv):
    yield (start + diff * i).strftime('%Y%m%d')
yield end.strftime('%Y%m%d')
Учитывая диапазон дат, как мы можем разбить его на N смежных подинтервалов?