Overall Task 1 was okay, there were some mistakes. for example, the words generated starting with 3 consonants and with at least vowels in a row are not correct.
Output is really long, could restrict the output to a certain window size.
Task 2 was good, with good amount of documentation. Code is minimal with no obvious mistakes, but need to avoid creating too many variables, for example, year2 might not be necessary.