def subset(target, lst):
    'determines whether or not it is possible to create target sum using the\n    values in the list. Values in teh list can be positive, negative, or zero.'
    if (target == 0):
        return True
    if (lst == []):
        return False
    'and and or are short-cut operators in python. THe second operand is not evaluated\n    when the overall result can be deduced by evaluating the second operand'
    return (subset((target - lst[0]), lst[1:]) or subset(target, lst[1:]))
determines whether or not it is possible to create target sum using the
values in the list. Values in teh list can be positive, negative, or zero.
def subset(target, lst):
    'determines whether or not it is possible to create target sum using the\n    values in the list. Values in teh list can be positive, negative, or zero.'
    if (target == 0):
        return True
    if (lst == []):
        return False
    'and and or are short-cut operators in python. THe second operand is not evaluated\n    when the overall result can be deduced by evaluating the second operand'
    return (subset((target - lst[0]), lst[1:]) or subset(target, lst[1:]))