code: def create_next_candidates(prev_candidates, length):
      
      # Solve the items.
      item_set = set()
      for candidate in prev_candidates:
          for item in candidate:
              item_set.add(item)
      items = sorted(item_set)
  
      # Create the temporary candidates. These will be filtered below.
      tmp_next_candidates = (frozenset(x) for x in combinations(items, length))
  
      # Return all the candidates if the length of the next candidates is 2
      # because their subsets are the same as items.
      if length < 3:
          return list(tmp_next_candidates)
  
      # Filter candidates that all of their subsets are
      # in the previous candidates.
      next_candidates = [
          candidate for candidate in tmp_next_candidates
          if all(
              True if frozenset(x) in prev_candidates else False
              for x in combinations(candidate, length - 1))
      ]
      return next_candidates
docs: Returns the apriori candidates as a list.
  
      Arguments:
          prev_candidates -- Previous candidates as a list.
          length -- The lengths of the next candidates.