UPDATE: I have realized the problem below is not possible to answer in its current form because of the large amount of data involved(15k+ items). I just found out, the
The problem you are trying to solve is called number partitioning. It is a special case of the knapsack problem. If the values are all integers and you are trying to get to value M, then then you can find a single solution in O(n*M) time. To enumerate all combinations could be exponential because there are potentially an exponential number of solutions.