returns 给定一些最大和最小标准的所有排列的方法

Method that returns all permutation given some maximum and minimum criteria

需要建立这个方法,可能会使用一些递归,但没有成功,一旦给定每个元素的总和最大值和最小值return所有可能的列表,其元素的总和是总价值。

Ex

Input:
Total: 25
Maximum value per element in array:5
Minimum value per element in array:3

Output: 

[5,5,5,5,5] [4,4,4,4,4,5] [3,3,4,4,4,4,3] [3,3,4,4,4,4,3] [3,3,3,4,4,4,4] [3,3,3,3,4,4,5]
....

伪代码:

void makesum(lst, int asum, int amin, int amax):
    if (asum == 0) {
        print(lst.ToString());
    } 
    else {
        for (int i=amin; i <= min(asum, amax); i++) {
            makesum(lst.add(i), asum - i, amin, amax);
        }
   }

makesum(empty_array, 15, 3, 5)

(working Python version for reference)