迷失在Python嵌套while循环中

时间:2017-11-04 20:36:28

标签: python nested-loops

我迷失在python中的嵌套while循环中。

我有

a = 1,b = 1,c = 1,d = 1

我希望将a,b,c和d增加到16,但是逐个增加,我的意思是:

1 2 3 4然后1 3 4 5然后1 4 5 6 ... 1 14 15 16然后2 3 4 5 ...最多16 15 14 13我们必须避免2个相同的数字,如1 2 2 3。

我没有成功准备我的嵌套while循环。请帮忙!

由于

2 个答案:

答案 0 :(得分:1)

如果你只想要1个16的4个值的所有组合,你可以使用:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" encoding="UTF-8"/>

  <xsl:template match="/">
    <xsl:text>transitLine  transitRoute  routeProfile&#xA;</xsl:text>
    <xsl:for-each select="//transitLine">
      <xsl:value-of select="concat('    ', @id,'&#xA;')"/>
      <xsl:for-each select="transitRoute">
        <xsl:value-of select="concat('                ', @id,'&#xA;')"/>
        <xsl:for-each select=".//stop">
          <xsl:value-of select="concat('                               ',
            @refId,'&#xA;')"/>
        </xsl:for-each>
      </xsl:for-each>
    </xsl:for-each>
  </xsl:template>
</xsl:transform>

这会产生:

from itertools import combinations

for a, b, c, d in combinations(range(1, 17), 4):
  print(a, b, c, d)

答案 1 :(得分:0)

使用itertools.combinations

for a, b, c, d in itertools.combinations(range(1,17), 4):
    do_something