title: Python timeit.timeit do untimed actions in between statements
body: <p>I have a recursive function that has a <code>functools.lru_cache()</code> decorator on it. I want to time the execution of it from an empty cache multiple times. One way to do that is clear the cache every time, but this includes the cache clearing time.</p>
  
  <p>This is what I currently have:</p>
  
  <pre><code>@functools.lru_cache(maxsize=None)
  def recursive_function(n):
      # ...
      return sum(recursive_function(n - i) * b for i, b in enumerate(other_list))
  
  def time(number, n):
      return timeit.timeit(
          'f({}); f.cache_clear()'.format(n),
          'from {} import recursive_function as f'.format(__name__),
          number=number
      )
  </code></pre>
  
  <p>I still want to time it with <em>a</em> cache, as the cache reduces the time exponentially, but after it has been called once, calling it again takes ~0ms, as it just gets the cached value.</p>
  
  <p>Is there a way to do something between statements in <code>timeit.timeit</code> without it counting towards the time? Or to pause the timer before the cache_clear?</p>