If you start by sorting the positions and the ranges, you can save a lot of time:
range_sorted_list = sorted(zip(start_list, end_list))
range_sorted_iter = iter(range_sorted_list)
pos_sorted_list = sorted(pos_list)
start, end = next(range_sorted_iter)
try:
for pos in pos_sorted_list:
while pos >= end:
start, end = next(range_sorted_iter)
if start <= pos < end:
print "True", pos
elif pos < start:
print "False", pos
except StopIteration:
pass
This will allow you to only go over the arrays once, instead of once for every position.