def replace_clis(str_list,datas):
  """ Generate all possible cmd with a command string and the dict of item to replace """

  if not isinstance(str_list,list) : str_list = [str_list]
  for data in datas:
    key = list(data.keys())[0]
    values = data[key]

    if isinstance(values,list):
      # list
      str_tmp = []
      for k,str in enumerate(str_list):
        if str.find('{{' + key + '}}') != -1:
          for value in values:
            item = {}
            item[key] = value
            str_tmp = str_tmp + replace_clis([str],[item])
          str_list = str_tmp
    else:
      # str
      for k,str in enumerate(str_list):
        if str.find('{{' + key + '}}') != -1:
          str_list[k] = str.replace('{{'+key+'}}',values)

  return str_list