Edit in JSFiddle

// trying to solve http://www.theguardian.com/science/alexs-adventures-in-numberland/2015/may/20/can-you-do-the-maths-puzzle-for-vietnamese-eight-year-olds-that-has-stumped-parents-and-teachers

function perms(xs){
	var r=[];
	if (!xs.length)
		return [[]]
	for (var i=0;i<xs.length;i++){
		var xs_ = xs.slice();
		var x = xs_.splice(i, 1);
		var ps = perms(xs_);
		for (var j=0; j<ps.length;j++)
			r.push(x.concat(ps[j]))
	}
	return r;
}
/*
perms [] = [[]]
perms xs = [ x:ps | x <- xs , ps <- perms ( xs\\[x] ) ]
*/


function snake(a){
	return a[0]+a[3]-a[5] + 13*a[1]/a[2] + a[6]*a[7]/a[8] + 12*a[4]
}
var solutions=[];
var as=perms([1,2,3,4,5,6,7,8,9]);
for (var i=0;i<as.length;i++){
    if(snake(as[i])==87)
		solutions.push(as[i])
}

document.body.innerHTML = solutions.join('<br>')