I have a dataframe with 50k+ rows. `df.head(5)` is below:

```
       start_date   finish_date months_used
2841    2019-06-23  2019-07-17       2
2842    2019-06-16  2019-06-23       1
2843    2019-03-27  2019-07-17       5
2844    2019-05-29  2019-06-05       2
2845    2019-03-25  2019-07-17       5

```

I need to create one more column with a list of months spent between start and finish dates to use `df.explode` relying on this column and get for every ID with months\_used > 1 new row with date of every month the work was in progress.

My primitive way is:

```
for i in df2.index:
    if df2.loc[i, 'months_used'] > 1:
        x = pd.date_range(start=df2.loc[i, 'start_date'], end=df2.loc[i, 'finish_date'], freq='M')    
        df2.loc[i, 'rep_list'] = str(x)

```

But it does not make any sense, because it gives me strings like this `"DatetimeIndex(['2019-03-31', '2019-04-30', '2019-05-31', '2019-06-30'], dtype='datetime64[ns]', freq='M')"` and explode doesnt work. If i remove `str()` i get a `ValueError: Must have equal len keys and value when setting with an iterable`. And it is very slow...

I even cant fill any column with `list-type` because i get the same error (i suppose it tries to fill a column with values from the list instead of inserting the list itself to the dataframe...)

expected:

```
        start_date  finish_date months_used rep_list
2841    2019-06-23  2019-07-17       2      [2019-06, 2019-07]
2842    2019-06-16  2019-06-23       1      [2019-06]
2843    2019-03-27  2019-07-17       5      [2019-03, 2019-04, 2019-05, 2019-06, 2019-07]
2844    2019-05-29  2019-06-05       2      [2019-05, 2019-06]
2845    2019-03-25  2019-07-17       5      [2019-03, 2019-04, 2019-05, 2019-06, 2019-07]

```

Inside 'expected'-'rep\_list' there could be any dates from current month... e.g. [2019-03-01, 2019-04-01, 2019-05-01, 2019-06-01, 2019-07-01] or others. Just need explode to work after that.