'Return the underlying expression.
Examples
>>> from sympy.core.exprtools import Factors
>>> from sympy.abc import x, y
>>> Factors((x*y**2).as_powers_dict()).as_expr()
x*y**2'

def as_expr(self):

    args = []
    for (factor, exp) in self.factors.items():
        if (exp != 1):
            (b, e) = factor.as_base_exp()
            if isinstance(exp, int):
                e = _keep_coeff(Integer(exp), e)
            elif isinstance(exp, Rational):
                e = _keep_coeff(exp, e)
            else:
                e *= exp
            args.append((b ** e))
        else:
            args.append(factor)
    return Mul(*args)
