import random, datetime, time, calendar def r(month=1): y=datetime.date.today().year start=time.mktime(datetime.date(y, month,1).timetuple()) days=calendar.mdays[month] end=time.mktime(datetime.date(y, month, days).timetuple()) date=random.randrange(int(start), int(end)) res=datetime.datetime.fromtimestamp(date) return res.date(), res.time() N=10 N1=3 month=3 result={r(month)[0] :[r()[1] for _ in range(N1)] for _ in range(N)} print result