code: def circular_shifts(iterable):
      
      lst = list(iterable)
      return take(len(lst), windowed(cycle(lst), len(lst)))
docs: Return a list of circular shifts of *iterable*.
  
          >>> circular_shifts(range(4))
          [(0, 1, 2, 3), (1, 2, 3, 0), (2, 3, 0, 1), (3, 0, 1, 2)]