Python: ¿tienes todos los meses dentro del rango?

Quiero obtener todos los meses entre ahora y agosto de 2010, como una lista con el siguiente formato:

['2010-08-01', '2010-09-01', .... , '2016-02-01']

En este momento esto es lo que tengo:

months = []
for y in range(2010, 2016):
    for m in range(1, 13):
        if (y == 2010) and m < 8:
            continue
        if (y == 2016) and m > 2:
            continue
        month = '%s-%s-01' % (y, ('0%s' % (m)) if m < 10 else m)
        months.append(month)

¿Cuál sería una mejor manera de hacer esto?

Respuestas a la pregunta(6)

Su respuesta a la pregunta