code: def iter_index(iterable, value, start=0):
      """Yield the index of each place in *iterable* that *value* occurs,
      beginning with index *start*.
  
      See :func:`locate` for a more general means of finding the indexes
      associated with particular values.
  
      >>> list(iter_index('AABCADEAF', 'A'))
      [0, 1, 4, 7]
      """
      try:
          seq_index = iterable.index
      except AttributeError:
          # Slow path for general iterables
          it = islice(iterable, start, None)
          i = start - 1
          try:
              while True:
                  i = i + operator.indexOf(it, value) + 1
                  yield i
          except ValueError:
              pass
      else:
          # Fast path for sequences
          i = start - 1
          try:
              while True:
                  i = seq_index(value, i + 1)
                  yield i
          except ValueError:
              pass
  
imports: import math
  import operator
  from collections import deque
  from collections.abc import Sized
  from functools import partial, reduce
  from itertools import chain, combinations, compress, count, cycle, groupby, islice, product, repeat, starmap, tee, zip_longest
  from random import randrange, sample, choice
label_desc: Use image node_id 36 for calling a global function with example usage: iter_index(iterable, value, start) without return types