Use the datetime module to work with dates and times...
>>> import datetime
>>> start = datetime.datetime(2021, 1, 24, 8)
>>> stop = datetime.datetime(2021, 1, 24, 22)
>>> fifteen_minutes = datetime.timedelta(minutes=15)
>>> current = start
>>> result = []
>>> while current <= stop:
... result.append(current.time())
... current += fifteen_minutes
...
This populates your list with datetime.date objects, although, note that I used datetime.datetime objects so that I was able to increment them with datetime.timedelta objects.
You probably want to stick with one of those, but you can always format the output, e.g:
>>> [t.strftime("%I%:%M%p") for t in result]
['08:00AM', '08:15AM', '08:30AM', '08:45AM', '09:00AM', '09:15AM', '09:30AM', '09:45AM', '10:00AM', '10:15AM', '10:30AM', '10:45AM', '11:00AM', '11:15AM', '11:30AM', '11:45AM', '12:00PM', '12:15PM', '12:30PM', '12:45PM', '01:00PM', '01:15PM', '01:30PM', '01:45PM', '02:00PM', '02:15PM', '02:30PM', '02:45PM', '03:00PM', '03:15PM', '03:30PM', '03:45PM', '04:00PM', '04:15PM', '04:30PM', '04:45PM', '05:00PM', '05:15PM', '05:30PM', '05:45PM', '06:00PM', '06:15PM', '06:30PM', '06:45PM', '07:00PM', '07:15PM', '07:30PM', '07:45PM', '08:00PM', '08:15PM', '08:30PM', '08:45PM', '09:00PM', '09:15PM', '09:30PM', '09:45PM', '10:00PM']
EDIT: Notice you wanted intervals. You can do something like:
list(zip(result, result[1:]))
to get every pair, then format accordingly.
So, something to the effect of:
>>> [f"{t1.strftime('%I:%M%p')} - {t2.strftime('%I:%M%p')}" for t1, t2 in zip(result, result[1:])]
['08:00AM - 08:15AM', '08:15AM - 08:30AM', '08:30AM - 08:45AM', '08:45AM - 09:00AM', '09:00AM - 09:15AM', '09:15AM - 09:30AM', '09:30AM - 09:45AM', '09:45AM - 10:00AM', '10:00AM - 10:15AM', '10:15AM - 10:30AM', '10:30AM - 10:45AM', '10:45AM - 11:00AM', '11:00AM - 11:15AM', '11:15AM - 11:30AM', '11:30AM - 11:45AM', '11:45AM - 12:00PM', '12:00PM - 12:15PM', '12:15PM - 12:30PM', '12:30PM - 12:45PM', '12:45PM - 01:00PM', '01:00PM - 01:15PM', '01:15PM - 01:30PM', '01:30PM - 01:45PM', '01:45PM - 02:00PM', '02:00PM - 02:15PM', '02:15PM - 02:30PM', '02:30PM - 02:45PM', '02:45PM - 03:00PM', '03:00PM - 03:15PM', '03:15PM - 03:30PM', '03:30PM - 03:45PM', '03:45PM - 04:00PM', '04:00PM - 04:15PM', '04:15PM - 04:30PM', '04:30PM - 04:45PM', '04:45PM - 05:00PM', '05:00PM - 05:15PM', '05:15PM - 05:30PM', '05:30PM - 05:45PM', '05:45PM - 06:00PM', '06:00PM - 06:15PM', '06:15PM - 06:30PM', '06:30PM - 06:45PM', '06:45PM - 07:00PM', '07:00PM - 07:15PM', '07:15PM - 07:30PM', '07:30PM - 07:45PM', '07:45PM - 08:00PM', '08:00PM - 08:15PM', '08:15PM - 08:30PM', '08:30PM - 08:45PM', '08:45PM - 09:00PM', '09:00PM - 09:15PM', '09:15PM - 09:30PM', '09:30PM - 09:45PM', '09:45PM - 10:00PM']