Partition Advice

I have an application with a fixed set of operations: Add Lease, Edit Lease, Delete Lease, Add Property, etc ...

However the application is partitioned by countries. That is to say the functionality (screens) are exactly the same for each country, but what operations a user has will vary by country they are currently working in. (The working country is
chosen at the login screen)

I would rather not have to create seperate applications for each country because that would require me to recreate all the task/operation definitions.

What do you think would be a better way to partition the definitions/assignments to load a permission set based on the selected country.