Given an array nums of n integers where n > 1,  return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].
Example:
Input:  [1,2,3,4]
Output: [24,12,8,6]
Note: Please solve it without division and in O(n).
Follow up:
Could you solve it with constant space complexity? (The output array does not count as extra space for the purpose of space complexity analysis.)
class Solution:
     def productExceptSelf(self, nums):
         """
         :type nums: List[int]
         :rtype: List[int]
         """
         p = 1
         result = []
         for i in range(0, len(nums)):
             result.append(p)
             p = p * nums[i]
             
         p = 1
         
         for i in range(len(nums)-1, -1, -1):
             result[i] = result[i] * p
             p = p * nums[i]
         
         return result
class Solution:
     def productExceptSelf(self, nums):
         """
         :type nums: List[int]
         :rtype: List[int]
         """
         p = 1
         result = []
         for i in range(0, len(nums)):
             result.append(p)
             p = p * nums[i]
             
         p = 1
         
         for i in range(len(nums)-1, -1, -1):
             result[i] = result[i] * p
             p = p * nums[i]
         
         return result