def f():
    def f1(a, b, c):
        print a, b, c

    f1(1, 2, 3)
    f1(1, b=2, c=3)
    f1(1, b=2, c=3)
    f1(1, c=2, b=3)

    f1(1, b="2", c=3)
    f1(1, b=2, c="3")
    f1(1, c="2", b=3)
    f1(1, c=2, b="3")

    def f2(*args, **kw):
        print args, kw

    f2()
    f2(1)
    f2(1, 2)
    f2((1, 2))
    f2(*(1, 2))
    f2({1:2}, b=2)

    def f3(a=1, b=2, **kw):
        print a, b, kw

    f3(b=3, c=4)
    f3(b=3, a=4)
    f3(b=2, **{'c':3})
f()