code: func GeneratePasswordWithAllClasses(length int) (string, error) {
  	pw := GeneratePasswordCharset(length, CharAll)
  	for i := 0; i < 100; i++ {
  		if containsAllClasses(pw, digits, upper, lower, syms) {
  			return pw, nil
  		}
  		pw = GeneratePasswordCharset(length, CharAll)
  	}
  	return "", errors.New("failed to generate matching password after 100 rounds")
  }
docs: // GeneratePasswordWithAllClasses tries to enforce a password which
  // contains all character classes instead of only enabling them.
  // This is especially useful for broken (corporate) password policies
  // that mandate the use of certain character classes for not good reason