Python, Straightforward with Explanation
Sort the array.  Any "middle" numbers not in the first 3 or last 3 cannot be used in the final answer.  If we are using a middle number, it must have both a lef
Sort the array.  Any "middle" numbers not in the first 3 or last 3 cannot be used in the final answer.  If we are using a middle number, it must have both a left-neighbor and a right-neighbor, and switching to one of these neighbors will increase the product. \n\n```\ndef maximumProduct(self, A):\n    A.sort()\n    if len(A) > 6:\n        A = A[:3] + A[-3:]\n    \n    return max(A[i] * A[j] * A[k]\n    \t       for i in xrange(len(A))\n    \t       for j in xrange(i+1, len(A))\n    \t       for k in xrange(j+1, len(A)))\n```
[]