generate_input changes

Inputs are no longer generated using the whole charset. Now they just use the number of unique characters, and the number of characters. Documentation and testing reflects this. Related to this change, validate_inputs should be testing the number of unique items in the list, not the number of items.