title: Group consecutive integers and tolerate gaps of 1
body: <p>In Python, given a list of sorted integers, I would to group them by consecutive values <strong><em>and</em> tolerate gaps of 1.</strong> </p>
  
  <p>For instance, given a list <code>my_list</code>:</p>
  
  <pre><code>In [66]: my_list
  Out[66]: [0, 1, 2, 3, 5, 6, 10, 11, 15, 16, 18, 19, 20]
  </code></pre>
  
  <p>I would like the following output:</p>
  
  <pre><code>[[0, 1, 2, 3, 5, 6], [10, 11], [15, 16, 18, 19, 20]]
  </code></pre>
  
  <p>Now, if I didn't have to tolerate gaps of 1, I could apply the neat solution explained <a href="https://stackoverflow.com/questions/2154249/identify-groups-of-continuous-numbers-in-a-list">here</a>:</p>
  
  <pre><code>import itertools
  import operator
  results = []
  for k, g in itertools.groupby(enumerate(my_list), lambda (i,x):i-x):
          group = map(operator.itemgetter(1), g)
          results.append(group)
  </code></pre>
  
  <p>Is there a way to incorporate my extra requirement in the above solution? If not, what's the best way to tackle the problem?</p>