если у вас есть все данные в базе данных, то это будет работать.но если данных нет, вы должны сгенерировать их сами.
In [1]: import itertools
In [2]: list(itertools.product((2006,2007,2008), (1,2)))
Out[2]: [(2006, 1), (2006, 2), (2007, 1), (2007, 2), (2008, 1), (2008, 2)]
непосредственно из базы данных (но не вернет все комбинации, если не в базе данных):
In [1]: from django.db import connection
In [2]: Lecture.objects.values_list('year','term').distinct()
Out[2]: [(2001, 1), (2001, 2), (2002, 1), (2002, 2), (2003, 1), (2003, 2), (2004, 1), (2004, 2)]
In [3]: connection.queries
Out[3]:
[{'sql': u'SELECT DISTINCT "backend_lecture"."year", "backend_lecture"."term" FROM "backend_lecture" LIMIT 21', 'time': '0.001'}]