def get_params_with_extra(self, rule_name, params):
        """
        Get params with extra, like 'any'
        :param rule_name: 'path'
        :param params: default params
        :return: list of combination params
        """
        # HACK for prefer-local
        result = []
        extra_params = self._rules_vars_extra.get(rule_name, {})[0]
        _tmp_params = copy.deepcopy(params)
        _fixed_params = {}

        # Save params with list type - this type not changed
        for key, value in _tmp_params.items():
            if isinstance(value, list):
                _fixed_params[key] = value
        _tmp_params = {k: v for k, v in _tmp_params.items() if k not in _fixed_params}

        # extend with extra_vars - like 'any'
        for key, value in _tmp_params.items():
            if not isinstance(value, list) and key:
                _tmp_params[key] = list([value])
            if key in extra_params:
                _tmp_params[key].extend(extra_params[key])

        # get combinations
        keys = sorted(_tmp_params)
        combinations = itertools.product(*(_tmp_params[x] for x in keys))
        for comb in combinations:
            _dict = dict(zip(keys, comb))
            _dict.update(_fixed_params)
            result.append(_dict)

        return result
Get params with extra, like 'any'
        :param rule_name: 'path'
        :param params: default params
        :return: list of combination params