password generation flexibility