#!/usr/bin/env python

###########################################################################
# script name: ch-2.py                                                    #
#                                                                         #
# https://perlweeklychallenge.org/blog/perl-weekly-challenge-048/         #
#                                                                         #
# Palindrome Dates                                                        #
# Write a script to print all Palindrome Dates between 2000 and 2999.     #
# The format of date is mmddyyyy. For example, the first one was on       #
# October 2, 2001 as it is represented as 10022001.                       #
#                                                                         #
###########################################################################

#  M   M   D   D  Y   Y   Y   Y
# [01][*][012][2][2][012][*][01]
#   k  j   i          i   j   k
#
# k - Months can only begin with 0 or 1.
# j - The second months digit needs all numbers e.g. January 01 to October 10 (and of course beyond).
# i - Days begin with 0,1,2,3, However all years begin with 2 so the corresponding number
# means all days end in 2. 32 is not a valid day so the 3 is not needed.

for i in range(3):
    for j in range(10):
        for k in range(2):
            if (k == 1 and j > 2) or (k == 0 and j == 0):
                continue
            print(k,j,"-",i,"2-2",i,j,k,sep='')
            k += 1
        j += 1
    i += 1

# output:
#
# 10-02-2001
# 01-02-2010
# 11-02-2011
# 02-02-2020
# 12-02-2021
# 03-02-2030
# 04-02-2040
# 05-02-2050
# 06-02-2060
# 07-02-2070
# 08-02-2080
# 09-02-2090
# 10-12-2101
# 01-12-2110
# 11-12-2111
# 02-12-2120
# 12-12-2121
# 03-12-2130
# 04-12-2140
# 05-12-2150
# 06-12-2160
# 07-12-2170
# 08-12-2180
# 09-12-2190
# 10-22-2201
# 01-22-2210
# 11-22-2211
# 02-22-2220
# 12-22-2221
# 03-22-2230
# 04-22-2240
# 05-22-2250
# 06-22-2260
# 07-22-2270
# 08-22-2280
# 09-22-2290
