Another simple way is to use numpy np.arange between 2 datetime objects.
from datetime import datetime, timedelta
import numpy as np
start_date = datetime.strptime("2023-06-10", "%Y-%m-%d")
end_date = start_date + timedelta(13)
fut_dates = np.arange(fut_start_date, fut_end_date, dtype="datetime64[D]")
fut_dates:
array(['2023-06-10', '2023-06-11', '2023-06-12', '2023-06-13',
'2023-06-14', '2023-06-15', '2023-06-16', '2023-06-17',
'2023-06-18', '2023-06-19', '2023-06-20', '2023-06-21',
'2023-06-22'], dtype='datetime64[D]')
To convert to datetime.date objects:
fut_dates.astype(datetime)
array([datetime.date(2023, 6, 10), datetime.date(2023, 6, 11),
datetime.date(2023, 6, 12), datetime.date(2023, 6, 13),
datetime.date(2023, 6, 14), datetime.date(2023, 6, 15),
datetime.date(2023, 6, 16), datetime.date(2023, 6, 17),
datetime.date(2023, 6, 18), datetime.date(2023, 6, 19),
datetime.date(2023, 6, 20), datetime.date(2023, 6, 21),
datetime.date(2023, 6, 22)], dtype=object)
To output a list of strings you can do something like
[dt.strftime("%Y-%m-%d") for dt in pd.to_datetime(fut_dates)]
which returns
['2023-06-10',
'2023-06-11',
'2023-06-12',
'2023-06-13',
'2023-06-14',
'2023-06-15',
'2023-06-16',
'2023-06-17',
'2023-06-18',
'2023-06-19',
'2023-06-20',
'2023-06-21',
'2023-06-22']