code: def upper_diag_self_prodx(list_):
      
      return [(item1, item2)
              for n1, item1 in enumerate(list_)
              for n2, item2 in enumerate(list_) if n1 < n2]
docs: upper diagnoal of cartesian product of self and self.
      Weird name. fixme
  
      Args:
          list_ (list):
  
      Returns:
          list:
  
      CommandLine:
          python -m utool.util_alg --exec-upper_diag_self_prodx
  
      Example:
          >>> # ENABLE_DOCTEST
          >>> from utool.util_alg import *  # NOQA
          >>> list_ = [1, 2, 3]
          >>> result = upper_diag_self_prodx(list_)
          >>> print(result)
          [(1, 2), (1, 3), (2, 3)]