def addCards(lst):
    if lst == []:
        return 0
    else:
        firstCard = lst[0]
        restTotal = addCards(lst[1:])
        return firstCard + restTotal

###
    
def factorial(x):
    print(x)
    if x == 1: # base case is the smallest value
        return 1 # something that isn't recursive
    else:
        smallerProblem = x-1 # make the problem smaller
        smallerResult = factorial(x)
        return x * smallerResult # combine with the leftover part

###
    
def countVowels(s):
    if s == "": # base case
        return 0
    else: # recursive case
        smaller = countVowels(s[1:])
        if s[0] in "aeiou":
            return smaller + 1
        else:
            return smaller

###
        
def removeDuplicates(lst):
    if lst == []: # base case
        return []
    else: # recursive case
        smaller = removeDuplicates(lst[1:])
        print(lst, smaller)
        if lst[0] in smaller:
            return smaller
        else:
            return [lst[0]] + smaller
