How to get a list of dates using Python?
<p>So this program I have works. I can get from the start date to the end date a list of dates. But it's a lot of code. I'm wondering if there is an easier way to do the exact same thing. Any help that can be given is appreciated. </p>

<pre><code>start_date = 20151002 # &lt; 10-02-2015
dates = []
end_date = 20170304 # 03-04-2017 
def nextday():
    global start_date
    while start_date &lt; end_date: 
        start_date += 1
        next_date = str(start_date)
        dates.append(start_date)
        #so with the date the first 4 characters is the year
        #the next two charcters is the month
        #The last two charcters is the day. 
        #str(start_date)[4:] should actually be the month and the day.
        if str(next_date)[4] + str(next_date)[5] == "10" and str(next_date)[6] + str(next_date)[7] == "31":#&lt; there are only 31 days in oct - 10
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "1", "1", "0", "1"]
            print "Nov"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "11" and str(next_date)[6] + str(next_date)[7] == "30": #&lt; there are only 30 days in nov - 11
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "1", "2", "0", "1"]
            print "Dec"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "12" and str(next_date)[6] + str(next_date)[7] == "31": #&lt; there are only 31 days in dec - 12
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], str(int(next_date[3]) + 1), "0","1","0","1"]
            print "Jan", "New year"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "01" and str(next_date)[6] + str(next_date)[7] == "31": #&lt; there are only 31 days in jan - 01
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","2","0","1"]
            print "Feb"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if int(next_date[0]+next_date[1]+next_date[2]+next_date[3]) % 4 == 0:
            if str(next_date)[4] + str(next_date)[5] == "02" and str(next_date)[6] + str(next_date)[7] == "29": #&lt; there are only 29 days in LEAP YEAR feb - 02
                #^ This month will also change the year.
                date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","3","0","1"]
                print "Mar"
                new_month = ""
                for dat in date_list:   ####################LEAP YEAR#################
                    new_month += dat
                start_date = int(new_month)
        else:
            if str(next_date)[4] + str(next_date)[5] == "02" and str(next_date)[6] + str(next_date)[7] == "28": #&lt; there are only 28 days in feb - 02
                #^ This month will also change the year.
                date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","3","0","1"]
                print "Mar"
                new_month = ""
                for dat in date_list:
                    new_month += dat
                start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "03" and str(next_date)[6] + str(next_date)[7] == "31": #&lt; there are only 29 days in mar - 03
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","4","0","1"]
            print "Apr"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "04" and str(next_date)[6] + str(next_date)[7] == "30": #&lt; there are only 30 days in apr - 04
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","5","0","1"]
            print "May"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "05" and str(next_date)[6] + str(next_date)[7] == "31": #&lt; there are only 31 days in may - 05
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","6","0","1"]
            print "Jun"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "06" and str(next_date)[6] + str(next_date)[7] == "30": #&lt; there are only 30 days in jun - 0
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","7","0","1"]
            print "Jul"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "07" and str(next_date)[6] + str(next_date)[7] == "31": #&lt; there are only 31 days in jul - 0
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","8","0","1"]
            print "Aug"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "08" and str(next_date)[6] + str(next_date)[7] == "31": #&lt; there are only 31 days in aug - 0
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "0","9","0","1"]
            print "Sept"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        if str(next_date)[4] + str(next_date)[5] == "09" and str(next_date)[6] + str(next_date)[7] == "30": #&lt; there are only 31 days in sep - 0
            #^ This month will also change the year.
            date_list = [next_date[0], next_date[1], next_date[2], next_date[3], "1","0","0","1"]
            print "Oct"
            new_month = ""
            for dat in date_list:
                new_month += dat
            start_date = int(new_month)
        print start_date
nextday()
print dates
</code></pre>