On a recent project, we had a need to find an easier way for system admins to manage which permission sets were assigned to which user, especially when initially creating the user.
Here's what we came up with. A multi-select picklist on the 'User' object, with a picklist value corresponding to each permission set in your org. Adding values to this picklist will assign the corresponding permission to the user and vice versa.
We have created an unmanaged package which you can install directly into your Salesforce org. by accessing this link. Additionally, you can pull the source code directly GitHub and deploy it manually.
There are a few steps you need to carry out after installation. These are:
Replace the packaged 'PermissionSetx.Name' picklist values with the names of your own permission sets.
Give edit access to the field to whichever profiles need to use this functionality.
Drag the new field onto the 'User' page layout so that it appears on the view & edit pages.
That's it! Your permission set assignments can now be driven by the new picklist field on your User record.