title: combination without repetition of N elements without use for..to..do
body: <p>i want load in a list the combination of N number without repetition, giving to input the elements and group.
  For example, with 4 elements [1,2,3,4], i have for:</p>
  
  <pre><code>Group 1: [1][2][3][4]; 
  Group 2: [1,2][1,3][1,4][2,3][2,4][3,4];
  Group 3: [1,2,3][1,2,4][1,3,4][2,3,4]
  Group 4: [1,2,3,4]
  </code></pre>
  
  <p>Now, i have solved it using nested loop for, for example with group 2, i write:</p>
  
  <pre><code>  for x1 := 1 to 3 do
      for x2 := Succ(x1) to 4 do
        begin
          // x1, x2 // 
        end
  </code></pre>
  
  <p>or for group 3, i wrote:</p>
  
  <pre><code>  for x1 := 1 to 2 do
      for x2 := Succ(x1) to 3 do
        for x3 := Succ(x2) to 4 do
        begin
          // x1, x2, x3 // 
        end
  </code></pre>
  
  <p>and so for other groups.
  In general, if i want to do it for group N, as i can to do, without write N procedures with nested loops?
  I have thinked to a double while..do loop one to use for counter and one to use for groups count, but so is little hard, i wanted know if there was some solution more simple and fast, too using operator boolean or something so.
  Who can give me some suggest about it? Thanks very much.</p>