title: Generate all possibles combinations of an array with a length within a given range
body: <p>How can I generate all possible combinations of elements of an array with a length within a given range? E.g.:</p>
  
  <pre><code>('a'..'f').to_a.all_possibilities(3, 5)
  </code></pre>
  
  <p>should produce an array like:</p>
  
  <pre><code>['abc', 'abd', 'abe', 'abf', ..., 'abcde', 'abcdf', 'abcda', ...]
  </code></pre>
  
  <p>including from <code>"abc"</code> (three characters) up to the last possible combination of <code>('a'..'f').to_a</code> with five characters length. I have no idea how to do this. Any help?</p>