As mentioned in the other answers, the list() call is running you out of memory.
Instead, first iterate over maxcoorlist in order to find out its length. Then create random numbers in the range [0, length) and add them to an index set until the length of the index set is 1000.
Then iterate through maxcoorlist again and add the current value to a sample set if the current index is in your index set.
EDIT
An optimization is to directly calculate the length of maxcoorlist instead of iterating over it:
import math
n = len(array)
r = 4
length = math.factorial(n) / math.factorial(r) / math.factorial(n-r)