Firstly, thank you for genius answer to this question.

Here is almost the same code, with one tweak, I used enumerate, where you can set start index, which (potentially) makes it cleaner and nicer.

class Solution(object):
def findDisappearedNumbers(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
for i in xrange(len(nums)):
index = abs(nums[i])-1
nums[index] = -abs(nums[index])
return [index for index, n in enumerate(nums, start=1) if n > 0]