code: public static <E> List<Tuple2<E, Integer>> withIndex(Iterable<E> self, int offset) {
          return toList(withIndex(self.iterator(), offset));
      }
docs: Zips an Iterable with indices in (value, index) order.
  <p/>
  Example usage:
  <pre class="groovyTestCase">
  assert [["a", 5], ["b", 6]] == ["a", "b"].withIndex(5)
  assert ["1: a", "2: b"] == ["a", "b"].withIndex(1).collect { str, idx {@code ->} "$idx: $str" }
  </pre>
  
  @param self   an Iterable
  @param offset an index to start from
  @return a zipped list with indices
  @see #indexed(Iterable, int)
  @since 2.4.0