Another version using the same logic as in my other answer.
from datetime import date, timedelta # Definition 1: 1/1/14, 1/2/14, 1/2/14, 1/3/14 is consider consecutive # Definition 2: 1/1/14, 1/2/14, 1/2/14, 1/3/14 is consider not consecutive # datelist = [date(2014, 1, 1), date(2014, 1, 3), # date(2013, 12, 31), date(2013, 12, 30)] # datelist = [date(2014, 2, 19), date(2014, 2, 19), date(2014, 2, 20), # date(2014, 2, 21), date(2014, 2, 22)] datelist = [date(2014, 2, 19), date(2014, 2, 21), date(2014, 2, 22), date(2014, 2, 20)] datelist.sort() previousdate = datelist[0] for i in range(1, len(datelist)): #if (datelist[i] - previousdate).days == 1 or (datelist[i] - previousdate).days == 0: # for Definition 1 if (datelist[i] - previousdate).days == 1: # for Definition 2 previousdate = datelist[i] else: previousdate = previousdate + timedelta(days=-1) if datelist[-1] == previousdate: print "dates are consecutive" else: print "dates are not consecutive"