Это довольно смиренно
from datetime import date
for year in range(1583, 2018):
if date(year, 1, 1).weekday() == 0 and date(year, 12, 24).weekday() != 0:
print(year)
Упомяните конец диапазона, который я изменил с 2017 по 2018 год, потому что «стоп» не включен в перечисление (но он ничего не изменил, потому что это не понедельник).
Хорошая оптимизация из другого ответа (упомяните 4 в качестве третьего параметра для range ()), но остерегайтесь копировать его в другие условия проверки.
from datetime import date
for year in range(1584, 2018, 4):
if date(year, 1, 1).weekday() == 0 and date(year, 12, 24).weekday() != 0:
print(year)