I have a function that should take any list and then print it like this (e. g.):

Input list: `(A B C)`

Output: `(A B C) (A) (B) (C)`

That is the original list followed by each element in a list of its own. The function should be written as a recursive function.

I have the following pseudocode which I couldn't get it right and cannot transform into recursive:

```
Assuming input (A B C)

Function input (list)

  Cons newlist '(list) //newlist = (A B C)

  newlist append (car list) //car returns A

  pop list//remove firstElement

  newlist append (car list)//car returns B

  Pop list

  newlist append (car list)//car returns C

  pop list

  Print newlist.

```

The problem here is that using Append, I will get (A B C A B C). Is there any other way to separate it into its respective brackets and also recursively?