my %seen;
if (scalar (grep { !$seen{$_}++ } split //, $password) <= 2) {}

とかどうだろう。