function findspds(primelist, diffs)
  local results = {}
  for i = 1, #primelist-#diffs do
    result = {primelist[i]}
    for j = 1, #diffs do
      if primelist[i+j] - primelist[i+j-1] == diffs[j] then
        result[j+1] = primelist[i+j]
      else
        result = nil
        break
      end
    end
    results[#results+1] = result
  end
  return results
end

primegen:generate(nil, 1000000)
for _,diffs in ipairs{{2}, {1}, {2,2}, {2,4}, {4,2}, {6,4,2}} do
  spdlist = findspds(primegen.primelist, diffs)
  print("DIFFS: ["..table.concat(diffs," ").."]")
  print("COUNT: "..#spdlist)
  print("FIRST: ["..table.concat(spdlist[1]," ").."]")
  print("LAST: ["..table.concat(spdlist[#spdlist]," ").."]")
  print()
end