code: def find(self, term, limit=0, sort=False, ranks=None):
          
          ranks = ranks or self.ranks
          found_indices = []
          count = 0
  
          if not limit:
              for i, card in enumerate(self.cards):
                  if check_term(card, term):
                      found_indices.append(i)
          else:
              for i, card in enumerate(self.cards):
                  if count < limit:
                      if check_term(card, term):
                          found_indices.append(i)
                          count += 1
                  else:
                      break
  
          if sort:
              found_indices = sort_card_indices(self, found_indices, ranks)
  
          return found_indices
docs: Searches the stack for cards with a value, suit, name, or
          abbreviation matching the given argument, 'term'.
  
          :arg str term:
              The search term. Can be a card full name, value, suit,
              or abbreviation.
          :arg int limit:
              The number of items to retrieve for each term. ``0`` equals
              no limit.
          :arg bool sort:
              Whether or not to sort the results.
          :arg dict ranks:
              The rank dict to reference for sorting. If ``None``, it will
              default to ``DEFAULT_RANKS``.
  
          :returns:
              A list of stack indices for the cards matching the given terms,
              if found.