def sublist(list1: list, list2: list) -> bool:
    """
    Check if all the element of list1 are inside list2, preserving
    the order and subsequence of the elements
    :param list1: list1 of element to find
    :param list2: list2 target list
    :return: a boolean which represent True if the statement is
    respected
    """
    _list2_idx = 0
    for element in list2:
        if element == list1[0]:
            _list1_idx = 1
            _list2_iterator = _list2_idx+1
            while _list1_idx < len(list1):
                try:
                    _value = list2[_list2_iterator]
                except Exception as ex:
                    return False
                if _value != list1[_list1_idx]:
                    break
                _list2_iterator +=1
                _list1_idx +=1
            if _list1_idx == len(list1):
                return True
        _list2_idx +=1
    return False