Ich würde es ähnlich machen. Zuerst das Passwort generieren, und schauen, welche Bedingung schon erfüllt ist. Die, die nicht erfüllt sind, kannst du ja im Nachhinein erfüllen (Also z.B. ein Zeichen durch eine Zahl ersetzen ect)
Man liest sich, Stanlay