Very good!
One problem though. Your code to limit the password length does not work if I pass negative numbers. When the specs are negative then they can't be more negative ten the number of items in the list. You can't call for more than 26 non-duplicated upper case letters as there are only 26 of them.
ATBCharles Kincaid