docs: def all_scores(self):
          """
          Computes a list of DAGs and their structure scores, ordered by score.
  
          Returns
          -------
          list: a list of (score, dag) pairs
              A list of (score, dag)-tuples, where score is a float and model a acyclic nx.DiGraph.
              The list is ordered by score values.
  
          Examples
          --------
          >>> import pandas as pd
          >>> import numpy as np
          >>> from pgmpy.estimators import ExhaustiveSearch, K2Score
          >>> # create random data sample with 3 variables, where B and C are identical:
          >>> data = pd.DataFrame(np.random.randint(0, 5, size=(5000, 2)), columns=list('AB'))
          >>> data['C'] = data['B']
          >>> searcher = ExhaustiveSearch(data, scoring_method=K2Score(data))
          >>> for score, model in searcher.all_scores():
          ...   print("{0}\t{1}".format(score, model.edges()))
          -24234.44977974726      [('A', 'B'), ('A', 'C')]
          -24234.449760691063     [('A', 'B'), ('C', 'A')]
          -24234.449760691063     [('A', 'C'), ('B', 'A')]
          -24203.700955937973     [('A', 'B')]
          -24203.700955937973     [('A', 'C')]
          -24203.700936881774     [('B', 'A')]
          -24203.700936881774     [('C', 'A')]
          -24203.700936881774     [('B', 'A'), ('C', 'A')]
          -24172.952132128685     []
          -16597.30920265254      [('A', 'B'), ('A', 'C'), ('B', 'C')]
          -16597.30920265254      [('A', 'B'), ('A', 'C'), ('C', 'B')]
          -16597.309183596342     [('A', 'B'), ('C', 'A'), ('C', 'B')]
          -16597.309183596342     [('A', 'C'), ('B', 'A'), ('B', 'C')]
          -16566.560378843253     [('A', 'B'), ('C', 'B')]
          -16566.560378843253     [('A', 'C'), ('B', 'C')]
          -16268.324549347722     [('A', 'B'), ('B', 'C')]
          -16268.324549347722     [('A', 'C'), ('C', 'B')]
          -16268.324530291524     [('B', 'A'), ('B', 'C')]
          -16268.324530291524     [('B', 'C'), ('C', 'A')]
          -16268.324530291524     [('B', 'A'), ('C', 'B')]
          -16268.324530291524     [('C', 'A'), ('C', 'B')]
          -16268.324530291524     [('B', 'A'), ('B', 'C'), ('C', 'A')]
          -16268.324530291524     [('B', 'A'), ('C', 'A'), ('C', 'B')]
          -16237.575725538434     [('B', 'C')]
          -16237.575725538434     [('C', 'B')]
          """
  
          scored_dags = sorted([(self.scoring_method.score(dag), dag) for dag in self.all_dags()],
                               key=lambda x: x[0])
          return scored_dags