code: def find_all_matches(finder, ireq, pre=False):
      # type: (PackageFinder, InstallRequirement, bool) -> List[InstallationCandidate]
      
  
  
      candidates = clean_requires_python(finder.find_all_candidates(ireq.name))
      versions = {candidate.version for candidate in candidates}
      allowed_versions = _get_filtered_versions(ireq, versions, pre)
      if not pre and not allowed_versions:
          allowed_versions = _get_filtered_versions(ireq, versions, True)
      candidates = {c for c in candidates if c.version in allowed_versions}
      return candidates
docs: Find all matching dependencies using the supplied finder and the
      given ireq.
  
      :param finder: A package finder for discovering matching candidates.
      :type finder: :class:`~pip._internal.index.PackageFinder`
      :param ireq: An install requirement.
      :type ireq: :class:`~pip._internal.req.req_install.InstallRequirement`
      :return: A list of matching candidates.
      :rtype: list[:class:`~pip._internal.index.InstallationCandidate`]