Python 3、排列组合

Python 3, Permutation , combination

我的问题是:

编写代码打印出 x,y,z 的所有可能组合,使它们等于总和的输入值。 x,y,z = integer:

x*500 + y*300 + z*400 = total sum

但它没有打印出所有可能的答案。关于如何解决这个问题的任何建议?任何事情都会有所帮助。

谢谢!

一种回溯算法会有所帮助。

https://en.wikipedia.org/wiki/Backtracking

public void generatePossiblities(int xVal, int yVal, int zVal, int sum){
   if((xVal + yVal + zVal) == sum){
       print(xVal, yVal, zVal);
       return;
   }

   if((xVal + yVal + zVal) > sum){
       return;
   }


   for(int i = 2; i < sum; i++){
      generatePossiblities(xVal*i, yVal, zVal, sum)
      generatePossiblities(xVal, yVal*i, zVal, sum)
      generatePossiblities(xVal, yVal, zVal*i, sum)
   }
}

只是为了设置一个 Java 示例,因为我不经常使用 Python。希望这对您有所帮助。