code: def collect_dirs(path, max_depth=1, followlinks=True):
      
  
      if not os.path.isdir(path):
          return []
  
      o = [path]
  
      if max_depth == 0:
          return o
  
      for subdir in os.listdir(path):
  
          subdir = os.path.join(path, subdir)
  
          if not os.path.isdir(subdir):
              continue
  
          o += [subdir]
  
          if os.path.islink(subdir) and not followlinks:
              continue
  
          if max_depth > 0:
              o += collect_dirs(subdir, max_depth=max_depth - 1)
  
      return list(set(o))
docs: Recursively find directories under the given path.