# File lib/backports/1.9.2/array.rb, line 32
  def repeated_combination(num)
    return to_enum(:repeated_combination, num) unless block_given?
    num = Backports.coerce_to_int(num)
    if num <= 0
      yield [] if num == 0
    else
      indices = Array.new(num, 0)
      indices[-1] = size
      while dec = indices.find_index(&:nonzero?)
        indices[0..dec] = Array.new dec+1, indices[dec]-1
        yield values_at(*indices)
      end
    end
    self
  end