'Transform an expression into an ordered list of factors.
Examples
>>> from sympy import sin, cos
>>> from sympy.abc import x, y
>>> (2*x*y*sin(x)*cos(x)).as_ordered_factors()
[2, x, y, sin(x), cos(x)]'

def as_ordered_factors(self, order=None):

    (cpart, ncpart) = self.args_cnc()
    cpart.sort(key=(lambda expr: expr.sort_key(order=order)))
    return (cpart + ncpart)
