1. A method for generating a password for a user, comprising: presenting the user with a first hint and a second hint wherein: (i) the first hint contains a first variation for a variable word, (ii) the second hint contains a second variation for the variable word, (iii) the first variation is different from the second variation, (iv) the first hint is produced by populating a template with the first variation, and (v) the second hint is produced by populating the template with the second variation; receiving a user selection of one of the first hint and the second hint; and automatically generating a password based on the selected hint; wherein the generated password includes the variation for the variable word that is contained in the selected hint.