comefrom: <qiyuangong>040_Combination_Sum_II_1.py
code: def combinationSum2( candidates, target):
      candidates.sort()
      dp = [[] for _ in range(target + 1)]
      dp[0].append([])
      for i in range(1, target + 1):
          for j in range(len(candidates)):
              if candidates[j] > i:
                  break
              for k in range(len(dp[i - candidates[j]])):
                  temp = dp[i - candidates[j]][k][:]
                  if len(temp) > 0 and temp[-1] >= j:
                      continue
                  temp.append(j)
                  dp[i].append(temp)
      res = []
      check = {}
      for temp in dp[target]:
          value = [candidates[t] for t in temp]
          try:
              check[str(value)] += 1
          except KeyError:
              check[str(value)] = 1
              res.append(value)
      return res
masked: def sample_funcname ( var_0 , var_1 ) :
      var_0.sort ( )
      var_3 = [ [ ] for var_2 in range ( var_1 + 1 ) ]
      var_3 [ 0 ].append ( [ ] )
      for var_4 in range ( 1 , var_1 + 1 ) :
          for var_5 in range ( len ( var_0 ) ) :
              if var_0 [ var_5 ] > var_4 :
                  break
              for var_6 in range ( len ( var_3 [ var_4 - var_0 [ var_5 ] ] ) ) :
                  var_7 = var_3 [ var_4 - var_0 [ var_5 ] ] [ var_6 ] [ : ]
                  if len ( var_7 ) > 0 and var_7 [ - 1 ] >= var_5 :
                      continue
                  var_7.append ( var_5 )
                  var_3 [ var_4 ].append ( var_7 )
      var_8 = [ ]
      var_9 = { }
      for var_7 in var_3 [ var_1 ] :
          var_11 = [ var_0 [ var_10 ] for var_10 in var_7 ]
          try :
              var_9 [ str ( var_11 ) ] += 1
          except KeyError :
              var_9 [ str ( var_11 ) ] = 1
              var_8.append ( var_11 )
      return var_8
  