class_docstr: Has methods to ``enumerate`` and ``count`` the partitions of a multiset.
  
  This implements a refactored and extended version of Knuth's algorithm
  7.1.2.5M [AOCP]_."
  
  The enumeration methods of this class are generators and return
  data structures which can be interpreted by the same visitor
  functions used for the output of ``multiset_partitions_taocp``.
  
  Examples
  ========
  
  >>> from sympy.utilities.enumerative import MultisetPartitionTraverser
  >>> m = MultisetPartitionTraverser()
  >>> m.count_partitions([4,4,4,2])
  127750
  >>> m.count_partitions([3,3,3])
  686
  
  See Also
  ========
  
  multiset_partitions_taocp
  sympy.utilities.iterables.multiset_partitions
  
  References
  ==========
  
  .. [AOCP] Algorithm 7.1.2.5M in Volume 4A, Combinatoral Algorithms,
         Part 1, of The Art of Computer Programming, by Donald Knuth.
  
  .. [Factorisatio] On a Problem of Oppenheim concerning
         "Factorisatio Numerorum" E. R. Canfield, Paul Erdos, Carl
         Pomerance, JOURNAL OF NUMBER THEORY, Vol. 17, No. 1. August
         1983.  See section 7 for a description of an algorithm
         similar to Knuth's.
  
  .. [Yorgey] Generating Multiset Partitions, Brent Yorgey, The
         Monad.Reader, Issue 8, September 2007.
docstr: Returns the number of partitions of a multiset whose elements
  have the multiplicities given in ``multiplicities``.
  
  Primarily for comparison purposes.  It follows the same path as
  enumerate, and counts, rather than generates, the partitions.
  
  See Also
  ========
  
  count_partitions
      Has the same calling interface, but is much faster.
docstr_tok: ["Returns","the","number","of","partitions","of","a","multiset","whose","elements","have","the","multiplicities","given","in","``","multiplicities","``",".","Primarily","for","comparison","purposes",".","It","follows","the","same","path","as","enumerate",",","and","counts",",","rather","than","generates",",","the","partitions",".","See","Also","========","count_partitions","Has","the","same","calling","interface",",","but","is","much","faster","."]
code: def count_partitions_slow(self, multiplicities):
      """Returns the number of partitions of a multiset whose elements
      have the multiplicities given in ``multiplicities``.
  
      Primarily for comparison purposes.  It follows the same path as
      enumerate, and counts, rather than generates, the partitions.
  
      See Also
      ========
  
      count_partitions
          Has the same calling interface, but is much faster.
  
      """
      # number of partitions so far in the enumeration
      self.pcount = 0
      self._initialize_enumeration(multiplicities)
      while True:
          while self.spread_part_multiplicity():
              pass
  
          # M4  Visit (count) a partition
          self.pcount += 1
  
          # M5 (Decrease v)
          while not self.decrement_part(self.top_part()):
              # M6 (Backtrack)
              if self.lpart == 0:
                  return self.pcount
              self.lpart -= 1
  
label_desc: Use image node_id 14 for calling the MultisetPartitionTraverser obj's underlying member method code with example usage: obj.count_partitions_slow(multiplicities) and returns: self