def METHOD_NAME(start_datetime, end_datetime):
    first_minute_mark = _round_datetime_up_to_the_nearest_minute(start_datetime)
    number_of_minutes_until_divisible_by_15 = (0 - first_minute_mark.minute) % 15
    current_15_minute_mark = first_minute_mark + timedelta(minutes=number_of_minutes_until_divisible_by_15)
    assert current_15_minute_mark.minute % 15 == 0
    while current_15_minute_mark < end_datetime:
        yield current_15_minute_mark
        current_15_minute_mark += timedelta(minutes=15)