I'm not sure what the limits are for collections, but I can easily create 100,000 with return range (1,100000) as largeCollection
.
However, a better way to get those nodes is to unwind the collection into rows, and then match on the nodes with those keys:
// better to parameterize this, when you get the chance
WITH [1505697,2406945,2408297,2408531,2410815,2413566,2415224] as equipKeys
MATCH (n:person{key:2529962, ownBy:0})
UNWIND equipKeys as equipKey
MATCH (c:Equipment{key:equipKey})
MATCH path = (n)<-[:relation]-(c)
RETURN distinct EXTRACT (p in NODES(path)| p.key);
EDIT
From your comment, it seems you want to only return equipment keys where the :Equipment node has a path to your :person node.
The MATCH you're currently using will find ALL possible paths, which will choke on medium to large sized graphs, especially with many relationships.
You'll likely want to make use of the EXISTS() function, which will return true or false if such a path exists. That said, you may want to consider limiting the path by giving an upper bound of possible.
WITH [1505697,2406945,2408297,2408531,2410815,2413566,2415224] as equipKeys
MATCH (n:person{key:2529962, ownBy:0})
UNWIND equipKeys as equipKey
MATCH (c:Equipment{key:equipKey})
WITH DISTINCT n, c
WHERE EXISTS( (n)<-[:relation*0..10]-(c) )
RETURN c.key