A function a fund quite useful, so I thought I'd pass it on.
def mkfun(expr):
""" Creates a lambda with arguments which are the alphabetically ordered free symbols.
E.g.
f1 = mkfun(x**2)
print(f1(3))
f2 = mkfun(x**2 + y**2)
print(f2(3,4))
f3 = mkfun(x**2 + y**2 + z**2)
print(f3(3,4,5))
"""
free = list(ordered(expr.free_symbols))
return lambda *x: expr.subs(zip(free,x))