# A European adult with a computer can be as smart as a Vietnamese Eight year old

I’m quite liking the puzzles coming out of Alex Bellos’s Adventures in Numberland. This week’s challenge: Can you do the maths puzzle for Vietnamese eight-year-olds that has stumped parents and teachers?

You have a simple arithmetic equation and you have to place the digits from one to 9 in the grid so that the result is 66. And I thought that sounded pretty easy – there are only 362880 possible combinations, I just need a trial and error method to work through the combinations until I find the right one.

Thank you Python.

Firstly, a function to yield all the possible permutations in a list

```def yield_permutations(the_list):
""" Yields all permutations for a list """
length = len(the_list)
if length <= 1:
yield the_list
else:
for i in range(0, length):
for j in yield_permutations(the_list[:i] + the_list[i+1:]):
yield [the_list[i]] + j```

And then I just need to plug the values into the formula

```digits = []
for i in range(1, 10):
digits.append(i)

for x in yield_permutations(digits):
result = x[0] + 13 * x[1] / x[2] + x[3] + 12 * x[4] - x[5] - 11 + x[6] * x[7] / x[8] - 10
print(x, result)
if result == 66:
break```

I’m sure there is a more elegant way of doing this, but after checking my result by hand, I can confirm that this approach also works.