classSolution(object):deffourSum(self,nums,target):""" :type nums: List[int] :type target: int :rtype: List[List[int]] """nums.sort()mylist=[]iflen(nums)<4:return[]else:foriinrange(0,len(nums)-3):ifi!=0andnums[i]==nums[i-1]:continueforjinrange(i+1,len(nums)-2):ifj!=i+1andnums[j]==nums[j-1]:continuetotal=target-nums[i]-nums[j]left,right=j+1,len(nums)-1whileleft<right:ifnums[left]+nums[right]>total:right-=1elifnums[left]+nums[right]<total:left+=1else:mylist.append([nums[i],nums[j],nums[left],nums[right]])right-=1left+=1whileleft<rightandnums[left]==nums[left-1]:left+=1whileleft<rightandnums[right]==nums[right+1]:right-=1# while left < right and left != j + 1 and nums[left] == nums[left - 1]:# left += 1# print "aaa"# while left < right and right != (len(nums) - 1) and nums[right] == nums[right + 1]:# right -= 1# print "bbb"# ! can't include outer part, only include inner part!returnmylistif__name__=="__main__":answer=Solution()printanswer.fourSum([-1,2,1,-4],1)