Password Generator with injected password model
Is there a cleaner way to &quot;include&quot; symbols and digits, I just appended them to a list.

Cast (rather than wrap) ascii_letters etc. to a set.

Is there anything built-in to exclude one list from another?

Yes - don't use lists; use sets and apply set subtraction.
Otherwise: if you perform a cursory scan of this site for Python-based password generators you will hear some of these same points, but -

Do not use random; use the secrets module to generate secure random numbers
PasswordGenerator being its own separate class does not make sense; it doesn't offer anything over generate so generate can be a free function or more likely a method on PasswordModel
charset would be better to return a set than a str
Maybe exclusion_list is being accepted as a string due to the valid concern that mutables (lists, etc.) should not be made parameter defaults. That's fine, though a type hint exclusion_list: Iterable[str] = &quot;&quot; should make it clear that other iterables are acceptable, such as a set or tuple.