I'd look as using a category for your partitioning attribute as it provides hierarchical partitioning. I tend to use a lock and key analogy for this discussion. Let's say you had an attribute which has top level values like Account and then Payable and Receivable as levels under that. You could have another top level value in the same category called IS with values such as Desktop and ServiceDesk as second level items. This category is your lock that is applied to the process and this will be the attribute you added to the process. You also add this attribute to (say) groups ad this will be your partitioning attribute. Anyone without the right key will not be able to access this process. So anyone allocated the key Accounts will be able to see all process where the lock value is Accounts, Accounts-Payable or Accounts-Receivable, but nothing in IS. Anyone with the key Accounts-Payable will only be able to see processes with that partitioning value set and not (say) Accounts-Receivable or Accounts.
The same applies to the key value IS. Anyone allocated this key will see everything locked with IS, IS-Desktop and IS-ServiceDesk. Anyone with the key IS-ServiceDesk will just see those and not IS-Desktop or IS.
A way to allocate keys then is to put that same attribute on the Group object and administer it into place. This needs to be done by hand to match your requirements. So the group Accounts Team Leaders might have the key Accounts and another group might have the key Accounts-Payable. You have to map this out.
Now when a process is assigned, use a windowless action after the assignment to pull in the key from the group and apply it to the process as the lock. That way the user doesn't have to choose and its all automatic. The hierarchy of a category allows you to place the lock at the right point and let people cascade their access from that point down their key.
A few other comments. You can have master groups where their key is empty - they will see everything. You can also public processes that have locks that are empty, anyone can see these.
This very general mechanism takes some thought beforehand to implement, but seems to cover all the requirements I've come across so far. But I'm sure your mileage will vary :-)
If you are just starting on the partitioning voyage of discovery and/ or LDSD design in general, then I would recommend seeing if you can get some consulting support from whoever did your implementation. There might a few bear traps on the way to implementing the above outline and while this forum is good/great for ideas, it isn't a substitute for experience or time. Just a thought.