Вот решение с использованием модулей datetime и calendar :
import calendar
import datetime
current = datetime.date.today().replace(day=1)
mylist = list()
for i in xrange(12):
rng = calendar.monthrange(current.year, current.month)
last = current.replace(day = rng[1])
mylist.append(current.strftime("%b 1, %Y") + " - " + last.strftime("%b %d, %Y"))
current = (current - datetime.timedelta(1)).replace(day=1)
print mylist
Когда я запускаю это, он печатает:
['Jan 1, 2012 - Jan 31, 2012', 'Dec 1, 2011 - Dec 31, 2011', 'Nov 1, 2011 - Nov 30, 2011', 'Oct 1, 2011 - Oct 31, 2011', 'Sep 1, 2011 - Sep 30, 2011', 'Aug 1, 2011 - Aug 31, 2011', 'Jul 1, 2011 - Jul 31, 2011', 'Jun 1, 2011 - Jun 30, 2011', 'May 1, 2011 - May 31, 2011', 'Apr 1, 2011 - Apr 30, 2011', 'Mar 1, 2011 - Mar 31, 2011', 'Feb 1, 2011 - Feb 28, 2011']