Your form contains no element named 'list', so this:
$list = $_POST['list'];
is always going to be NULL. Other than that, I would say you're going about this the wrong way.
There are various ways to pre-fill a form using previously POST'ed values. For example, for a <select> with static data, you could do something like:
<select name="foo">
<option value="bar" <?php echo $_POST['foo'] != 'bar' ?: 'selected="selected"'; ?>>bar</option>
<option value="baz" <?php echo $_POST['foo'] != 'baz' ?: 'selected="selected"'; ?>>baz</option>
</select>
Or, you could generate all of the HTML inside of the <select>...</select> tags using PHP:
<select name="foo">
<?php
foreach(array('bar', 'baz') as $optn)
echo '<option value="$optn"' . ($_POST['foo'] != $optn ?: 'selected="selected"') . ">$optn</option>\n";
?>
</select>