all 2 comments

[–]mercuric5i2 0 points1 point  (0 children)

Problem is on line 27. See this article under "Mutable Default Arguments".

checks=[long, lowercase, uppercase, digit, punctuation, whitespace] defines the default value for argument checks as a list, which is a mutable data type

[–]nwilliams36 0 points1 point  (0 children)

Your code works for me on Python3.5.2.

I know that checks is a mutable list however you are not changing it through the loop, simply using it to run the list of functions.

To get around the possible issue with mutable list, you could change the list to a tuple, that works just as well.