typo

完全なるtypoでした。
id:morchinさん、お手数かけました。

def permutation(n, m = 0):
    def _permutation(n, m, numList):
        if n == m:
            print numList
        else:
            for x in range(1, n+1):
                if x in numList:
                    continue
                numList.append(x)
                _permutation(n, m + 1, numList)
                numList.pop()
    return _permutation(n, m, [])


def main():
    print permutation(3)


if __name__ == "__main__":
    main()

ご指摘どおり直すと、

E:\study>python test.py
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
None

うまく動いてる、のか?
最後にNoneが出てきた。
また考察をしなければ。

追記

考察結果、16行目のpermutation()を呼び出す前のprintが悪さをしていることが判明。
というか、permutation()には、終了判定時にprintで出力をしているので、そもそも必要ない。
あぁ、ほんと自分の不注意さが情けない。
一連のエントリでid:morchinさんには迷惑をかけてしましました。
すみません