output_description: Print n+1 lines. The k-th line should contain the number of the different
  subsequences of the given sequence with length k, modulo 10^9+7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      n
      a_1 a_2 ... a_{n+1}
attempt: import sys
  finput=lambda:sys.stdin.readline().strip()
  
  def main():
      p=10**9+7
      n=int(finput())
      a=list(map(int,finput().split()))
      k=sum(a)-(n*(n+1))//2
      pk=[i for i in range(n+1) if a[i]==k]
      fact=[1]*(n+2)
      ifact=[1]*(n+2)
      for i in range(1,n+2):
          fact[i]=fact[i-1]*i % p
      a=fact[-1]
      inv=1
      m=p-2
      while m>0:
          if m&1:
              inv=a*inv % p
          m>>=1
          a=a*a % p
      ifact[-1]=inv
      for i in range(n+1,0,-1):
          ifact[i-1]=ifact[i]*i
      ans0=[0]*(n+2)
      ans1=[0]*(n+2)
      ans2=[0]*(n+2)
      sn=pk[0]+n-pk[1]
      for i in range(n):
          ans0[i]=fact[n-1]*ifact[n-i-1]*ifact[i]%p
          ans1[i+1]=ans0[i]*2
          ans2[i+2]=ans0[i]
  		if sn>i:
              ans1[i+1]-=fact[sn]*ifact[sn-i]*ifact[i] % p
          print((ans0[i]+ans1[i]+ans2[i]) % p)
  
  if __name__=='__main__':
      main()
  
problem_description: Statement
  
  You are given an integer sequence of length n+1, a_1,a_2,...,a_{n+1}, which
  consists of the n integers 1,...,n. It is known that each of the n integers
  1,...,n appears at least once in this sequence.
  
  For each integer k=1,...,n+1, find the number of the different subsequences
  (not necessarily contiguous) of the given sequence with length k, modulo
  10^9+7.
samples: [{"input": "3\n    1 2 1 3", "output": "3\n    5\n    4\n    1\n    \n\nThere are three subsequences with length 1: 1 and 2 and 3.\n\nThere are five subsequences with length 2: 1,1 and 1,2 and 1,3 and 2,1 and\n2,3.\n\nThere are four subsequences with length 3: 1,1,3 and 1,2,1 and 1,2,3 and\n2,1,3.\n\nThere is one subsequence with length 4: 1,2,1,3.\n\n* * *"}, {"input": "1\n    1 1", "output": "1\n    1\n    \n\nThere is one subsequence with length 1: 1.\n\nThere is one subsequence with length 2: 1,1.\n\n* * *"}, {"input": "32\n    29 19 7 10 26 32 27 4 11 20 2 8 16 23 5 14 6 12 17 22 18 30 28 24 15 1 25 3 13 21 19 31 9", "output": "32\n    525\n    5453\n    40919\n    237336\n    1107568\n    4272048\n    13884156\n    38567100\n    92561040\n    193536720\n    354817320\n    573166440\n    818809200\n    37158313\n    166803103\n    166803103\n    37158313\n    818809200\n    573166440\n    354817320\n    193536720\n    92561040\n    38567100\n    13884156\n    4272048\n    1107568\n    237336\n    40920\n    5456\n    528\n    33\n    1\n    \n\nBe sure to print the numbers modulo 10^9+7."}]