General bars and stars

I’ve got a the following “bars and stars” algorithm, implemented in Python, which prints out all decomposition of a sum into 3 bins, for sums going from 0 to 5.
I’d like to generalise my code so it works with N bins (where N less than the max sum i.e 5 here).
The pattern is if you have 3 bins you need 2 nested loops, if you have N bins you need N-1 nested loops.

Thread that I can pause and resume?

I’m trying to create a thread, that does stuff in the background. I need to be able to effectively ‘pause’ it when I need to and ‘resume’ it again later. Also, if the thread is in the middle of doing something when I ‘pause’ it, it should make the calling thread wait until it finishes what it’s doing.