docs: def candidates(self, word):
          """ Generate possible spelling corrections for the provided word up to
              an edit distance of two, if and only when needed
  
              Args:
                  word (str): The word for which to calculate candidate spellings
              Returns:
                  set: The set of words that are possible candidates """
          if self.known([word]):  # short-cut if word is correct already
              return {word}
          # get edit distance 1...
          res = [x for x in self.edit_distance_1(word)]
          tmp = self.known(res)
          if tmp:
              return tmp
          # if still not found, use the edit distance 1 to calc edit distance 2
          if self._distance == 2:
              tmp = self.known([x for x in self.__edit_distance_alt(res)])
              if tmp:
                  return tmp
          return {word}