def rearrange_args(*args, **kwargs):
    """
    Given positional arguments and keyword arguments, return a list
    of tuples containing the type of argument and number of the
    argument as well as its value.

    Parameters:
        *args: Random positional arguments.
        **kwargs: Random keyword arguments.
    Returns:
        List of tuples where the first value of the tuple is the
        type of argument with its number and the second value is
        the value of the argument. Keyword arguments' first value
        also contains the key of the keyword argument.

    >>> rearrange_args(10, False, player1=[25, 30], player2=[5, 50])
    [('positional_0', 10), ('positional_1', False), \
('keyword_0_player1', [25, 30]), ('keyword_1_player2', [5, 50])]
    >>> rearrange_args('L', 'A', 'N', 'G', L='O', I='S')
    [('positional_0', 'L'), ('positional_1', 'A'), ('positional_2', 'N'), \
('positional_3', 'G'), ('keyword_0_L', 'O'), ('keyword_1_I', 'S')]
    >>> rearrange_args(no_positional=True)
    [('keyword_0_no_positional', True)]

    # Add AT LEAST 3 doctests below, DO NOT delete this line
    >>> rearrange_args(11, 'no_kw')
    [('positional_0', 11), ('positional_1', 'no_kw')]
    >>> rearrange_args(11, keyW = 'MONKEY!!!!')
    [('positional_0', 11), ('keyword_0_keyW', 'MONKEY!!!!')]
    >>> rearrange_args(keyW = 4.0, d11='C')
    [('keyword_0_keyW', 4.0), ('keyword_1_d11', 'C')]
    """
    key_index = 0
    val_index = 1
    return [('positional_' + str(count), arg) for count, arg\
        in list(enumerate(args))] + [('keyword_' + str(num) + '_' + \
            str(dic[key_index]), dic[val_index]) \
            for num, dic in enumerate(kwargs.items())]