Simplifying this factorial function def factorial(t,n):
    if n == 1 : return t

    else: x = (t * (n-1))

    n = n-1

    return factorial(x,n)



print factorial(6,6)


I can't seem to figure out a way to just stick to requiring one parameter input while keeping the program small. I also want the function to remain recursive (trying to work on my recursive thinking).

If you have any other cooler simplifications or other fancy methods, please show it off.
First, if n == 1the method returns, so there is no need for the else.
Let us see what 6! would result in: 6 * 5! which is just 6 * 5 * 4! and so on.
Now we see a patter: n! = n * (n-1)!
Keeping this in mind we can refactor the given method to only take one parameter and to be recursive.
def factorial(n):
    if n &lt; 0 :
        raise ValueError(&quot;Negative values are not allowed.&quot;)
    if n == 0 : return 1

    return n * factorial(n-1)

print factorial(6)

As James Snell stated correctly in his comment, we can replace the n == 1 check with a n &lt;= 2 check if we assume n &gt;= 1.
As jonrsharpe stated correctly in his comment, 0! should return 1 and also negative numbers don't have a factorial.
As Simon André Forsberg stated correctly in his comment, rasing an error for a negative parameter should be done.