def allMissing(nums):
	result = []
	index = 0
	while index < len(nums):
		if nums[index] > 0 and not nums[index] == index+1:
			nums[nums[index]-1], nums[index] = nums[index], nums[nums[index]-1]
			if nums[index] == nums[nums[index]-1]:
				nums[index] = -1
				index += 1
		else:
			index += 1
	for i in range(len(nums)):
		if nums[i] < 0:
			result.append(i+1)
	return result

print(allMissing([5,2,2,1,7,3,3]))
print(allMissing([5,2,2,1,2,2,2]))
print(allMissing([1,1,1,1,1,1,7]))
print(allMissing([1,1]))