我要解决的问题是获取集合 S,它包含 X 个整数的所有可能排列,使得所有整数都大于 0,并且当相加时等于某个 Y。
因此,如果 X 等于 2 并且 Y 等于 5,则可以通过以下列表推导解决问题:
[(a,b) for a in range(1,5) for b in range(1,5) if a+b==5]
但是,我正在尝试解决任意 X 和任意 Y。我可以将其编写为一系列巨大的 if 语句,但我觉得我已经非常接近一个很好的、干净的列表理解来处理它了。有没有办法用列表推导来做到这一点?