block_sizes: (Integer) vector of sizes of the various subgroups that can be combined to form groups
group_nums: Vector of sizes of the different groups to be formed
fullTree: Boolean: Enforce full search of the possibility tree, independent of the value of maxCalls
maxCalls: Maximum number of recursive calls in the search tree, to avoid long run times with very large trees
Returns
List of possible allocations; Each allocation is an integer vector of allocation levels that are assigned in that order to the subgroups with sizes given by block sizes