from itertools import product, permutations, izip
def find_countdown(instr):
innums = [x for x in instr.split()]
for nums in permutations(innums[:-1]):
for symbs in product('*/+-', repeat=5):
teststr = nums[0]
for num, symb in izip(nums[1:], symbs):
teststr = '(' + teststr + symb.center(3) + num + ')'
if eval(teststr) == int(innums[-1]):
print teststr.translate(None, '()') + ' = ' + innums[-1]
return
find_countdown('1 3 7 6 8 3 250')
find_countdown('25 100 9 7 3 7 881')
find_countdown('6 75 3 25 50 100 952')
ZnJvbSBpdGVydG9vbHMgaW1wb3J0IHByb2R1Y3QsIHBlcm11dGF0aW9ucywgaXppcAoKZGVmIGZpbmRfY291bnRkb3duKGluc3RyKToKICAgIGlubnVtcyA9IFt4IGZvciB4IGluIGluc3RyLnNwbGl0KCldCiAgICBmb3IgbnVtcyBpbiBwZXJtdXRhdGlvbnMoaW5udW1zWzotMV0pOgogICAgICAgIGZvciBzeW1icyBpbiBwcm9kdWN0KCcqLystJywgcmVwZWF0PTUpOgogICAgICAgICAgICB0ZXN0c3RyID0gbnVtc1swXQogICAgICAgICAgICBmb3IgbnVtLCBzeW1iIGluIGl6aXAobnVtc1sxOl0sIHN5bWJzKToKICAgICAgICAgICAgICAgIHRlc3RzdHIgPSAnKCcgKyB0ZXN0c3RyICsgc3ltYi5jZW50ZXIoMykgKyBudW0gKyAnKScKICAgICAgICAgICAgaWYgZXZhbCh0ZXN0c3RyKSA9PSBpbnQoaW5udW1zWy0xXSk6CiAgICAgICAgICAgICAgICBwcmludCB0ZXN0c3RyLnRyYW5zbGF0ZShOb25lLCAnKCknKSArICcgPSAnICsgaW5udW1zWy0xXQogICAgICAgICAgICAgICAgcmV0dXJuCgpmaW5kX2NvdW50ZG93bignMSAzIDcgNiA4IDMgMjUwJykKZmluZF9jb3VudGRvd24oJzI1IDEwMCA5IDcgMyA3IDg4MScpCmZpbmRfY291bnRkb3duKCc2IDc1IDMgMjUgNTAgMTAwIDk1Micp