Crear lista de marca de tiempo aleatoria en python

¿Hay alguna forma de crear una lista de marcas de tiempo aleatorias irregulares en formato estrictamente creciente en Python? Por ejemplo:

20/09/2013 13:00 20/09/2013 13:01 20/09/2013 13:05 20/09/2013 13:09 20/09/2013 13:16 20/09/2013 13:26 

Puedes construir un generador aleatorio.

  • Puede generar un número de randrange(60) entre 0-60 (minutos)

  • use timedelta para agregar tiempo a la fecha real, en su caso, es 20/09/2013 13:..

  • random_date un generador random_date , con una fecha de inicio y la cantidad de fechas que desee generar.

 from random import randrange import datetime def random_date(start,l): current = start while l >= 0: curr = current + datetime.timedelta(minutes=randrange(60)) yield curr l-=1 startDate = datetime.datetime(2013, 9, 20,13,00) for x in random_date(startDate,10): print x.strftime("%d/%m/%y %H:%M") 

Salida:

 20/09/13 13:12 20/09/13 13:02 20/09/13 13:50 20/09/13 13:13 20/09/13 13:56 20/09/13 13:40 20/09/13 13:10 20/09/13 13:35 20/09/13 13:37 20/09/13 13:45 20/09/13 13:27 

ACTUALIZAR

Puede engañar eso agregando el número de diferencia a la última fecha que ha generado, y luego invierta la lista general. También puede cambiar el número aleatorio que agrega cada vez, para obtener los resultados que desea.

Su código se vería así.

 from random import randrange import datetime def random_date(start,l): current = start while l >= 0: current = current + datetime.timedelta(minutes=randrange(10)) yield current l-=1 startDate = datetime.datetime(2013, 9, 20,13,00) for x in reversed(list(random_date(startDate,10))): print x.strftime("%d/%m/%y %H:%M") 

Salida:

 20/09/13 13:45 20/09/13 13:36 20/09/13 13:29 20/09/13 13:25 20/09/13 13:20 20/09/13 13:19 20/09/13 13:16 20/09/13 13:16 20/09/13 13:07 20/09/13 13:03 20/09/13 13:01